代码之家  ›  专栏  ›  技术社区  ›  Rockie

从命令行在maven项目中运行Selenium测试时出现编译错误

  •  1
  • Rockie  · 技术社区  · 8 年前

    我读了很多关于这个问题的文章,但是没有找到正确的答案,这对我来说很好。所以,我写了mvn项目,项目中的结构是这样的:

    +src/test/java(包含测试类的包)

    +src/main/java(包含一些helper类的包)

    M2\u HOME=C:\Program Files\apache-maven-3.5.0,

    JAVA\U HOME=C:\Program Files\JAVA\jdk1.8.0\U 111。

    java-版本

    java版本“1.8.0_111” Java(TM)SE运行时环境(build 1.8.0_111-b14) Java HotSpot(TM)64位服务器虚拟机(构建25.111-b14,混合模式)

    mvn-v

    Apache Maven 3.5.0(ff8f5e7444045639af65f6095c62210b5713f426;2017-04-03T21:39:06+02:00) Java版本:1.8.0_111,供应商:Oracle Corporation 默认区域设置:en_GB,平台编码:Cp1252 操作系统名称:“windows 10”,版本:“10.0”,架构:“amd64”,系列:“windows”

    javac-版本

    POM.XML

        <repositories>
            <repository>
                <id>atlassian.com</id>
                <name>Atlassian</name>
                <url>http://maven.atlassian.com/public</url>
                <layout>default</layout>
            </repository>
    <!--        <repository> -->
    <!--            <id>maven2-repository.dev.java.net</id> -->
    <!--            <name>Java.net Repository for Maven</name> -->
    <!--            <url>http://download.java.net/maven/2/</url> -->
    <!--            <layout>default</layout> -->
    <!--        </repository> -->
        </repositories>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <cucumber.version>1.2.2</cucumber.version>
            <selenium.version>3.0.1</selenium.version>
            <junit.version>4.12</junit.version>
            <atr.version>1.2.3</atr.version>
            <rest.version>2.4.0</rest.version>
            <jira.version>1000.824.2</jira.version>
            <jira.data.version>1000.824.2</jira.data.version>
            <amps.version>5.0.4</amps.version>
            <plugin.testrunner.version>1.2.0</plugin.testrunner.version>
            <testkit.version>6.0.51</testkit.version>
        </properties>
    
    
        <build>
    <!--        <testSourceDirectory>src/test/java</testSourceDirectory> -->
                <plugins> 
    <!--            <plugin> -->
    <!--                <artifactId>maven-assembly-plugin</artifactId> -->
    <!--                <version>2.2.1</version> -->
    <!--                <configuration> -->
    <!--                    <descriptorRefs> -->
    <!--                        <descriptorRef>jar-with-dependencies</descriptorRef> -->
    <!--                    </descriptorRefs> -->
    <!--                    <archive> -->
    <!--                        <manifest> -->
    <!--                            <mainClass>gov.grantsolutions.pmo.App</mainClass> -->
    <!--                        </manifest> -->
    <!--                    </archive> -->
    <!--                </configuration> -->
    <!--                <executions> -->
    <!--                    <execution> -->
    <!--                        <id>make-assembly</id> -->
    <!--                        <phase>package</phase> -->
    <!--                        <goals> -->
    <!--                            <goal>single</goal> -->
    <!--                        </goals> -->
    <!--                    </execution> -->
    <!--                </executions> -->
    <!--            </plugin> -->
    <!--            <plugin> -->
    <!--                <groupId>org.apache.maven.plugins</groupId> -->
    <!--                <artifactId>maven-surefire-plugin</artifactId> -->
    <!--                <version>2.20</version> -->
    <!--                <configuration> -->
    <!--                    <suiteXmlFiles> -->
    <!--                        <suiteXmlFile>test_logging.xml</suiteXmlFile> -->
    <!--                    </suiteXmlFiles> -->
    <!--                </configuration> -->
    <!--            </plugin> -->
    <!--        <plugin> -->
    <!--             <groupId>org.apache.maven.plugins</groupId> -->
    <!--             <artifactId>maven-resources-plugin</artifactId> -->
    <!--             <version>2.6</version> -->
    <!--             <executions> -->
    <!--                 <execution> -->
    <!--                     <phase>test</phase> -->
    <!--                     <goals> -->
    <!--                         <goal>resources</goal> -->
    <!--                         <goal>testResources</goal> -->
    <!--                     </goals> -->
    <!--                 </execution> -->
    <!--             </executions> -->
    <!--         </plugin> -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.3</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    
        <dependencies>
            <!-- https://mvnrepository.com/artifact/ojdbc/ojdbc -->
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc14</artifactId>
                <version>10.2.0.3.0</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/junit/junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
                <version>3.0.1</version>
                <scope>test</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/junit-addons/junit-addons -->
            <dependency>
                <groupId>junit-addons</groupId>
                <artifactId>junit-addons</artifactId>
                <version>1.4</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.testng/testng -->
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.9.8</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.beust</groupId>
                <artifactId>jcommander</artifactId>
                <version>1.30</version>
            </dependency>
            <dependency>
                <groupId>org.bluestemsoftware.open.maven.tparty</groupId>
                <artifactId>jettison</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.3</version>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.0.4</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-client</artifactId>
                <version>2.25</version>
            </dependency>
    <!--        <dependency> -->
    <!--            <groupId>com.sun.xml.bind</groupId> -->
    <!--            <artifactId>jaxb-impl</artifactId> -->
    <!--            <version>2.1.12</version> -->
    <!--        </dependency> -->
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
                <version>1.1.1</version>
            </dependency>
    <!--        <dependency> -->
    <!--            <groupId>javax.xml</groupId> -->
    <!--            <artifactId>jaxb-api</artifactId> -->
    <!--            <version>2.1</version> -->
    <!--        </dependency> -->
            <dependency>
                <groupId>javax.xml.stream</groupId>
                <artifactId>stax-api</artifactId>
                <version>1.0-2</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>stax</groupId>
                <artifactId>stax-api</artifactId>
                <version>1.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-vfs2</artifactId>
                <version>2.1</version>
            </dependency>
            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch</artifactId>
                <version>0.1.54</version>
            </dependency>
            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>3.3</version>
            </dependency>
            <dependency>
                <groupId>jcifs</groupId>
                <artifactId>jcifs</artifactId>
                <version>1.3.17</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-json</artifactId>
                <version>1.5</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-rest-java-client</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>1.7</version>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20090211</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.15</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.6</version>
            </dependency>
    
    
            <!-- https://mvnrepository.com/artifact/net.lightbody.bmp/browsermob-core-littleproxy -->
            <!-- <dependency> <groupId>net.lightbody.bmp</groupId> <artifactId>browsermob-core-littleproxy</artifactId> 
                <version>2.1.0-beta-6</version> </dependency> -->
    
        </dependencies>
    

    $ mvn clean install
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building ATS_Test_Cases 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ ATS_Test_Cases ---
    [INFO] Deleting C:\git\Selenium\Selenium.git\AcceptanceTestSuite\target
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ ATS_Test_Cases ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory C:\git\Selenium\Selenium.git\AcceptanceTestSuite\src\main\resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ ATS_Test_Cases ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 35 source files to C:\git\Selenium\Selenium.git\AcceptanceTestSuite\target\classes
    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR :
    [INFO] -------------------------------------------------------------
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/utils/Common.java:[27,35] package com.mozzartbet.qa.testCases does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/POClasses/BasePage.java:[10,18] package org.testng does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/LoginDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/DashboardDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/LottoDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/SportTicketDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/DepositDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/LoginDataProvider.java:[31,2] cannot find symbol
      symbol:   class DataProvider
      location: class com.mozzartbet.qa.data.LoginDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/DashboardDataProvider.java:[20,2] cannot find symbol
      symbol:   class DataProvider
      location: class com.mozzartbet.qa.data.DashboardDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/LottoDataProvider.java:[32,2] cannot find symbol
      symbol:   class DataProvider
      location: class com.mozzartbet.qa.data.LottoDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/SportTicketDataProvider.java:[30,2] cannot find symbol
      symbol:   class DataProvider
      location: class com.mozzartbet.qa.data.SportTicketDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/SportTicketDataProvider.java:[49,2] cannot find symbol
      symbol:   class DataProvider
      location: class com.mozzartbet.qa.data.SportTicketDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/DepositDataProvider.java:[23,2] cannot find symbol
      symbol:   class DataProvider
      location: class com.mozzartbet.qa.data.DepositDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/utils/Common.java:[36,30] cannot find symbol
      symbol:   variable Test_Preconditions
      location: class com.mozzartbet.qa.utils.Common
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/POClasses/BasePage.java:[52,17] cannot find symbol
      symbol:   variable Assert
      location: class com.mozzartbet.qa.POClasses.BasePage
    [INFO] 15 errors
    [INFO] -------------------------------------------------------------
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2.989 s
    [INFO] Finished at: 2017-07-09T18:21:16+02:00
    [INFO] Final Memory: 21M/193M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project ATS_Test_Cases: Compilation failure: Compilation failure:
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/utils/Common.java:[27,35] package com.mozzartbet.qa.testCases does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/POClasses/BasePage.java:[10,18] package org.testng does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/LoginDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/DashboardDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/LottoDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/SportTicketDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/DepositDataProvider.java:[5,30] package org.testng.annotations does not exist
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/LoginDataProvider.java:[31,2] cannot find symbol
    [ERROR]   symbol:   class DataProvider
    [ERROR]   location: class com.mozzartbet.qa.data.LoginDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/DashboardDataProvider.java:[20,2] cannot find symbol
    [ERROR]   symbol:   class DataProvider
    [ERROR]   location: class com.mozzartbet.qa.data.DashboardDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/LottoDataProvider.java:[32,2] cannot find symbol
    [ERROR]   symbol:   class DataProvider
    [ERROR]   location: class com.mozzartbet.qa.data.LottoDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/SportTicketDataProvider.java:[30,2] cannot find symbol
    [ERROR]   symbol:   class DataProvider
    [ERROR]   location: class com.mozzartbet.qa.data.SportTicketDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/SportTicketDataProvider.java:[49,2] cannot find symbol
    [ERROR]   symbol:   class DataProvider
    [ERROR]   location: class com.mozzartbet.qa.data.SportTicketDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/data/DepositDataProvider.java:[23,2] cannot find symbol
    [ERROR]   symbol:   class DataProvider
    [ERROR]   location: class com.mozzartbet.qa.data.DepositDataProvider
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/utils/Common.java:[36,30] cannot find symbol
    [ERROR]   symbol:   variable Test_Preconditions
    [ERROR]   location: class com.mozzartbet.qa.utils.Common
    [ERROR] /C:/git/Selenium/Selenium.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/POClasses/BasePage.java:[52,17] cannot find symbol
    [ERROR]   symbol:   variable Assert
    [ERROR]   location: class com.mozzartbet.qa.POClasses.BasePage
    [ERROR] -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Rockie    8 年前

    问题解决了。这一段痕迹,隐藏了答案的关键:

    /C: /git/Selenium/seleniume.git/AcceptanceTestSuite/src/main/java/com/mozzartbet/qa/utils/Common.java:[27,35] 包com.mozzartbet.qa。测试用例不存在

    在测试类的公共类I实例对象中?!?我为什么这么做?我不知道。无论如何,一切都可以用Java版本,Java编译器(编译器设置),依赖项。所以我封装了公共类,现在它不依赖于测试用例类,一切都很好