如何从命令行运行 TestNG

2022-09-01 04:25:56

如何从命令行运行.java TestNG 项目?

我已经通读了TestNG文档,并尝试了以下方法,但无济于事:

C:\projectfred> java org.testng.TestNG testng.xml 

...在我的项目中使用以下测试.xml文件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >  
<suite name="SuiteAll" verbose="1">
    <test name="TestAll">  
        <packages>  
            <package name="com.project.fred.tests"/>
        </packages>  
    </test>  
</suite>

我得到的错误是这样的:

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNG
Caused by: java.lang.ClassNotFoundException: org.testng.TestNG
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.testng.TestNG.  Program will exit.

显然,我没有在命令行中正确引用TestNG。有谁知道如何让它工作?


答案 1

您需要具有下类路径。testng.jar

尝试C:\projectfred> java -cp "path-tojar/testng.jar:path_to_yourtest_classes" org.testng.TestNG testng.xml

更新:

在linux下,我运行了这个命令,在Windows上也会有类似的东西

test/bin# java -cp ".:../lib/*" org.testng.TestNG testng.xml

目录结构:

/bin - All my test packages are under bin including testng.xml
/src - All source files are under src
/lib - All libraries required for the execution of tests are under this.

一旦我编译了所有源代码,它们就会进入bin目录下。因此,在类路径中,我需要在此处指定bin目录和所有库(如testng.xml,loggers等)的内容。如果您不想指定 testng.xml 可用的完整路径,也可以将 testng.xml复制到 bin 文件夹。

 /bin
    -- testng.xml
    -- testclasses
    -- Properties files if any.
 /lib
    -- testng.jar
    -- log4j.jar

更新

转到该文件夹并键入运行java命令,如下所示:-MyProject

java -cp ".: C:\Program Files\jbdevstudio4\studio\plugins\*" org.testng.TestNG testng.xml

我相信测试.xml文件在下面,如果没有,请给出文件的完整路径C:\Users\me\workspace\MyProjecttestng.xml


答案 2

如果您使用的是Maven,则可以从cmd行非常轻松地运行它,cd到带有testng.xml(或者您的任何名称,包含所有将运行的类的xml)的目录中,然后运行以下cmd:

mvn clean test -DsuiteXmlFile=testng.xml 

本页更详细地解释了它:如何从Maven命令行运行testng.xml

我不知道你是否使用Maven很重要,所以我没有在我的搜索词中包含它,我想我会在这里提到它,以防其他人和我处于相同的情况。


推荐