究竟如何运行从命令行一个.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的。 有谁知道如何得到这个工作?
Answer 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库,记录仪等。 此外testng.xml文件复制到bin文件夹,如果你不想指定的完整路径,其中的testng.xml可用。
/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
文件
Answer 2:
非常感谢这是非常非常有帮助。我是能够运行使用命令行我的TestNG的类,但我仍想总结会的事情,最后一次如下..
1) Set the classpath for the testng.jar in the environment variables
(either manually or via command line).
2) Create a new folder "MyTest".
3) Compile all your classes(testNG+java) and put them(.class files )
in a new folder "Mytest\bin".
4) Put your 'testng.xml' and '.properties' files to "Mytest\bin"
again.
5) Put all the .jar files (testng,selenium... etc) in a new folder
"Mytest\lib".
6) Browse to the folder "bin" via command line and run the command
java -cp "..\lib\*;" org.testng.TestNG testng.xml
这应该运行TestNG的情况。
Answer 3:
后试图弄清楚为什么我不能运行从实例2天行
http://www.tutorialspoint.com/testng/testng_environment.htm下面的代码并没有对我的工作
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
它的解决方法是如下:我来到了以下结论:首先安装Eclipse,并下载TestNG插件。 之后跟随本教程说明创建和CMD使用javac编译测试类,并添加的testng.xml。 要在Windows上运行的testng.xml 10 CMD运行以下行:
java -cp C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\*;C:\Test org.testng.TestNG testng.xml
澄清: C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\*
以上的路径表示您通过安装TestNG的下载jcommander.jar和testng.jar的位置Eclipse插件。 路径可能不同,所以可以肯定的只是打开Eclipse的安装位置,转到插件和搜索jcommander.jar。 然后复制该位置并添加*后,选择所需的所有.jar文件。
C:\Test
上面的路径表示在项目中testing.xml的位置。 获得所有必要的路径之后,通过使用附加它们“;”。
我希望我是有帮助的一些你们的:)
Answer 4:
使用“;”作为Windows的问题分隔符得到了解决。
java -cp "path of class files; testng jar file path" org.testng.TestNG testng.xml
例如: -
java -cp ".\bin;..\common_lib\*;" org.testng.TestNG testng.xml
Answer 5:
准备MANIFEST.MF
文件,内容如下
Manifest-Version: 1.0
Main-Class: org.testng.TestNG
包在同一个罐子所有的测试和依赖类,说tests.jar
jar cmf MANIFEST.MF tests.jar -C folder-with-classes/ .
尾随的通知“”代替folder-with-classes/
用正确的文件夹名或路径。
创建testng.xml
中包含的内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Tests" verbose="5">
<test name="Test1">
<classes>
<class name="com.example.yourcompany.qa.Test1"/>
</classes>
</test>
</suite>
更换com.example.yourcompany.qa.Test1
与路径测试类。
运行测试
java -jar tests.jar testng.xml
Answer 6:
下面的命令对我的作品。 提供所有必需的罐子包括TestNG的罐子里面保存库。
java -cp "lib/*" org.testng.TestNG testng.xml
Answer 7:
您将需要使用分号分隔符为,而在窗口中指定的jar和类文件的路径。 这解决了这个问题。
假设类文件是下C :.
java -cp ".;C:\testng.jar" org.testng.TestNG testing.xml
Answer 8:
我已经遇到了一些问题,因为我下载TestNG插件从Eclipse中。 在这里我做了什么来完成这项工作:
TestNG的添加到您的项目库后创建一个文件夹中的项目名称为LIB(名称可以是任何东西):
进入“C:\ Program Files文件\ Eclipse的\ Eclipse的Java的火星-R-Win32的x86_64的\日食\插件”的位置,并复制com.beust.jcommander_1.72.0.jar和org.testng_6.14.2.r20180216145.jar文件到创建的文件夹(LIB)。
注:文件是testng.jar和jcommander.jar
- 现在启动CMD,然后导航到您的项目目录,然后键入:
java命令C:\用户\ User123 \ TestNG的\ lib中*; C:\用户\ User123 \ TestNG的\ BIN org.testng.TestNG的testng.xml
而已 !
让我知道如果您有任何更多的关注。
Answer 9:
走了以后通过量的各种职位,这个工作对我很好做IntelliJ Idea
:
java -cp "./lib/*;Path to your test.class" org.testng.TestNG testng.xml
这里是我的目录结构:
/lib
-- all jar including testng.jar
/out
--/production/Example1/test.class
/src
-- test.java
testing.xml
因此,通过这个命令执行:
java -cp "./lib/*;C:\Users\xyz\IdeaProjects\Example1\out\production\Example1" org.testng.TestNG testng.xml
我的项目目录Example1
中的路径:
C:\Users\xyz\IdeaProjects\
Answer 10:
如果您正在使用Maven,您可以在CMD线运行它真的很容易,CD与testng.xml文件的目录(或任何你叫,具有所有将要运行的类XML)和运行这个CMD:
mvn clean test -DsuiteXmlFile=testng.xml
本页面说明它在更多的细节: 如何从Maven的命令行运行的testng.xml
我不知道这要紧如果你使用Maven的,所以才不包括在我的搜索词,我以为我会在这里提到它,以防其他人在同样的情况,因为我是。
文章来源: How to run TestNG from command line