java - 如何从命令行运行 TestNG

标签 java command-line testng command-prompt

究竟如何从命令行运行 .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。有谁知道如何让它工作?

最佳答案

你需要在classpath下有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

更新:

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

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

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

关于java - 如何从命令行运行 TestNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11896791/

相关文章:

java - 在testng中使用@BeforeTest注释的问题

java - 如何在 JEditorPane 中设置 html 的超时

java - Java 基准测试(比较两个类)

java - ImageMagick 和 Java Runtime Exec 的问题

java - 如何使用 jstat 或其他基于命令行的工具获取当前/最大 jvm 堆利用率(单个值)?

postgresql - 如何以非交互方式为 'psql' 指定密码?

Maven-surefire 插件不包括并行测试

java - Eclipse 插件中动态生成的 TestNG 测试的名称

java - 使用java插入表时出现SQl错误

java - ListView 显示两次所有行