尝试通过命令行触发自动化测试,但看到'java.lang.ClassNotFoundException:org.testng.TestNG'

时间:2019-05-13 08:23:01

标签: java windows automation automated-tests testng

我正尝试通过以下命令通过命令行触发测试(我使用的是Windows 10操作系统):

java -cp selenium-docker.jar:selenium-docker-tests.jar:libs/* -DBROWSER=firefox org.testng.TestNG ../search-module.xml

运行以下命令时,我会看到以下异常:

java.lang.ClassNotFoundException: org.testng.TestNG 

search-module.xml文件代码:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="search-module">
    <test name="search-test-java">
        <parameter name="keyword" value="java" />
        <classes>
            <class name="com.searchmodule.tests.SearchTest" />
        </classes>
    </test>
    <test name="search-test-webdriver">
        <parameter name="keyword" value="webdriver" />
        <classes>
            <class name="com.searchmodule.tests.SearchTest" />
        </classes>
    </test>
    <test name="search-test-docker">
        <parameter name="keyword" value="docker" />
        <classes>
            <class name="com.searchmodule.tests.SearchTest" />
        </classes>
    </test>
    <test name="search-test-kubernetes">
        <parameter name="keyword" value="kubernetes" />
        <classes>
            <class name="com.searchmodule.tests.SearchTest" />
        </classes>
    </test>
</suite>

Java版本:

java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

我可以看到目标目录中列出了testng jar: enter image description here

项目结构:

enter image description here

1 个答案:

答案 0 :(得分:0)

调查您的陈述:

  

我正在使用Windows 10操作系统

您定义CLASSPATH的方法在Windows上是错误的:

  1. PATH条目应以分号;
  2. 分隔
  3. Windows上的文件分隔符为反斜杠\

因此,从理论上讲,您需要修改command to kick off TestNG suite使其看起来像这样:

java -cp selenium-docker.jar;selenium-docker-tests.jar;libs/* -DBROWSER=firefox org.testng.TestNG ..\search-module.xml