如何从命令行运行 TestNG

新手上路,请多包涵

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

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

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

…在我的项目中使用以下 testng.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。有谁知道如何让这个工作?

原文由 Fuzzy Analysis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

您需要在类路径下拥有 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、记录器等)的内容。如果您不想指定 testng.xml 可用的完整路径,也可以将 testng.xml 复制到 bin 文件夹。

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

Update

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

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

我相信 testng.xml 文件在 C:\Users\me\workspace\MyProject 如果不是请给出 testng.xml 文件的完整路径

原文由 Patton 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您使用的是 Maven,则可以非常简单地从 cmd 行运行它,cd 进入包含 testng.xml 的目录(或任何您调用的目录,包含将运行的所有类的 xml)并运行此 cmd:

 mvn clean test -DsuiteXmlFile=testng.xml

此页面更详细地解释了它: How to run testng.xml from Maven command line

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

原文由 Marcelino Lucero III 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题