Java 通过命令行运行TestNG

Java 通过命令行运行TestNG,java,eclipse,selenium-webdriver,testng,Java,Eclipse,Selenium Webdriver,Testng,一些注释: 1.我最初使用的testngjar来自我们java项目中的maven repo。以下所有方法都通过maven testNG jar和新的testNG 6.9.12下载进行了测试。 2.我可以从eclipse中运行这个文件。只有在尝试从命令行运行时出现问题 3.最终目标是通过按下javafx应用程序按钮触发命令行来运行测试。如果提供的解决方案避免在cmd中键入绝对路径,我将不胜感激,因为该应用程序将在不同的机器上使用,但只要我能在我的机器上运行它,我将尝试分别解决其余问题:) 4.从我

一些注释:
1.我最初使用的testngjar来自我们java项目中的maven repo。以下所有方法都通过maven testNG jar和新的testNG 6.9.12下载进行了测试。
2.我可以从eclipse中运行这个文件。只有在尝试从命令行运行时出现问题
3.最终目标是通过按下javafx应用程序按钮触发命令行来运行测试。如果提供的解决方案避免在cmd中键入绝对路径,我将不胜感激,因为该应用程序将在不同的机器上使用,但只要我能在我的机器上运行它,我将尝试分别解决其余问题:)
4.从我在网上看到的情况来看,在尝试运行testng xml文件时会遇到不同的问题。如果这个堆栈问题是在一系列其他与运行文件相关的问题之后出现的,请耐心听我说。提前谢谢

问题: 我正在尝试使用命令行运行testNG“test.xml”。
网上有很多指南,但没有一个适合我

以下是我到目前为止尝试过的一些方法,其中包括一些:
方法1
资料来源:
1. <代码>https://www.safaribooksonline.com/library/view/testng-beginners-guide/9781782166009/ch02s05.html
2. <代码>http://stackoverflow.com/questions/11896791/how-to-run-testng-from-command-line
  • 打开命令
  • CD到包含test.xml文件的文件夹
  • 语法:
    java-cp“[testngjar的完整路径]:[要运行的已编译java类的完整路径]”org.testNG.testNG[testngxml文件名]
  • 我输入的实际CMD输入:
    java-cp“C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar:C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\NBS\testcases\testcases\org.testng.testng.xml

    结果:

    Error: Could not find or load main class org.testng.TestNG
    
    Error: Could not find or load main class org.testng.TestNG
    
    我还尝试将
    [testNG jar的完整路径]
    替换为上面第二个源链接中建议的“like
    java-cp”:C:\Users\johndoe\Documents\My Docs\03_OE\java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\testcases“org.testNG.testNG test.xml
    ,得到了相同的错误

    方法2
    来源:
    1. <代码>https://www.tutorialspoint.com/testng/testng_environment.htm
  • 设置环境变量:
    TESTNG\u HOME=C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\org\TESTNG\TESTNG\6.9.10
  • 设置环境变量:
    CLASSPATH=%CLASSPATH%;%TESTNG_HOME%\TESTNG-6.9.10.jar
  • CD到包含test.xml文件的文件夹
  • 语法:
    java-cp“[要运行的已编译java类的完整路径]”org.testng.testng[testngxml文件名]
  • 实际输入:
    java-cp“C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\testcases”org.testng.test.xml

    结果:

    Error: Could not find or load main class org.testng.TestNG
    
    Error: Could not find or load main class org.testng.TestNG
    
    方法3
    来源:
    1. <代码>http://stackoverflow.com/questions/28303723/could-not-find-or-load-main-class-org-testng-testng
  • CD到包含test.xml文件的文件夹
  • 输入:
    java-cp“;C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar”org.testng.testng.test.xml

    结果:

    然后,我根据
    http://stackoverflow.com/questions/7100821/suddenly-cant-run-testng-tests-from-ant-testng-caused-by-java-lang-classnot
  • 下载一个新的testngjar文件。结果仍然相同。
  • 在类路径中添加jcommander.jar:
    java-cp“;C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\Maven\m2\repository\org\testng\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar”org.testng.testng.xml

    结果:

    [TestNG] [ERROR]
    Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
    
    [TestNG] [ERROR]
    Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
    
  • 看到上面的错误,我在classpath:
    java-cp中添加了编译后的java类路径".;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\testcases“org.testng.testng test.xml

    结果:

    [TestNG] [ERROR]
    Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
    
    [TestNG] [ERROR]
    Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
    
    总而言之:
    我认为我最近的一次尝试是在对方法3进行故障排除之后,但仍然无法运行xml

    命令分解: 完整:
    java-cp“。;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\testcases“org.testng.testng test.xml

    第一部分:
    java-cp

    第二部分:
    “[.];[testNG jar的完整路径]
    第三部分:
    “[jcommander jar的完整路径];

    第四部分:
    “[已编译java类的完整路径]”

    第五部分:
    org.testng.testng[testng xml文件名]

    在[testNG xml文件目录]上执行的命令

    请帮忙!提前谢谢

    =========================================================================
    编辑1:
    按照Julien Herr的建议,我从compiled java classes文件夹中删除了额外的文件夹,这产生了一个不同的结果

    [TestNGClassFinder] Warning: Can't link and determine methods of class NBS.testcases.LoginWithBayanUser
    [TestNGClassFinder] Warning: Can't link and determine methods of class NBS.testcases.LoginWithBayanUser2
    [[TestNGClassFinder]] Unable to read methods on class NBS.testcases.LoginWithBayanUser - unable to resolve class reference Automation/framework/dataModel/CaseInfo
    [[TestNGClassFinder]] Unable to read methods on class NBS.testcases.LoginWithBayanUser2 - unable to resolve class reference Automation/framework/dataModel/CaseInfo
    [TestNG] Running:
      C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\test-classes\testngRunner\test.xml
    
    
    ===============================================
    Suite1
    Total tests run: 0, Failures: 0, Skips: 0
    ===============================================
    
    下面是我的test.xml文件的内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="Suite1" verbose="1" parallel="classes" thread-count="2" preserve-order="true">
        <test name="Regression suite 1" >
            <parameter name="globalXlsDataIndex" value="1"/> 
            <classes>
                <class name="NBS.testcases.LoginWithBayanUser" />
                <class name="NBS.testcases.LoginWithBayanUser2" />
            </classes>
        </test>
    </suite>
    
    希望您能帮忙!谢谢!

    试试:

    java -cp ".;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\test-classes" org.testng.TestNG test.xml
    
    尝试:


    我花了整整一个下午去f