如何从命令行运行TestNG的(How to run TestNG from command lin

2019-06-17 17:01发布

究竟如何运行从命令行一个.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中。 在这里我做了什么来完成这项工作:

  1. TestNG的添加到您的项目库后创建一个文件夹中的项目名称为LIB(名称可以是任何东西):

  2. 进入“C:\ Program Files文件\ Eclipse的\ Eclipse的Java的火星-R-Win32的x86_64的\日食\插件”的位置,并复制com.beust.jcommander_1.72.0.jarorg.testng_6.14.2.r20180216145.jar文件到创建的文件夹(LIB)。

注:文件是testng.jar和jcommander.jar

  1. 现在启动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