【问题标题】:How to run testng.xml in bat file如何在 bat 文件中运行 testng.xml
【发布时间】:2016-05-29 05:52:52
【问题描述】:

我是 selenium webdriver 的新手,我想在 windows 服务器上安排我的测试。所以我打算创建一个 .bat 文件并使用 Windows 调度程序。这是我的bat文件。请帮我解决这个问题

projectLocation=E:\Automation\Webdrive 项目\HTML5

cd %projectLocation%

设置类路径=%projectLocation%\bin;%projectLocation%\lib*

java org.testng.TestNG %projectLocation%\testng.xml

暂停

Project

当我运行代码时出现一些错误。

C:\Users\miskinr\Desktop    set projectLocation=E:\Automation\Webdrive project\HTML5
C:\Users\miskinr\Desktop    cd E:\Automation\Webdrive project\HTML5
C:\Users\miskinr\Desktop    set classpath=E:\Automation\Webdrive project\HTML5\bin;
E:\Automation\Webdrive project\HTML5\lib\*
C:\Users\miskinr\Desktop    java org.testng.TestNG E:\Automation\Webdrive project\HTML5\testng.xml
java.io.FileNotFoundException: E:\Automation\Webdrive (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init    (Unknown Source)
at java.io.FileInputStream.<init    (Unknown Source)
at org.testng.xml.Parser.parse(Parser.java:167)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:300)
at org.testng.TestNG.run(TestNG.java:1021)
at org.testng.TestNG.privateMain(TestNG.java:1355)
at org.testng.TestNG.main(TestNG.java:1324)
java.io.FileNotFoundException:
  C:\Users\miskinr\Desktop\project\HTML5\testng.xml
(The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init    (Unknown Source)
at java.io.FileInputStream.<init    (Unknown Source)
at org.testng.xml.Parser.parse(Parser.java:167)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:300)
at org.testng.TestNG.run(TestNG.java:1021)
at org.testng.TestNG.privateMain(TestNG.java:1355)
at org.testng.TestNG.main(TestNG.java:1324)

【问题讨论】:

    标签: batch-file selenium


    【解决方案1】:

    使用

    cd /d "%projectLocation%"
    

    /d 开关在更改工作目录的同时更改驱动器号,引号将空格视为路径名的一部分而不是标记分隔符。此外,出于同样的原因,您应该在

    中引用该位置
    java org.testng.TestNG "%projectLocation%\testng.xml"
    

    但是由于您修复了 cd /d 行,您仍然可以忽略 %projectLocation%,因为它现在已经是当前工作目录。

    不严格适用于当前情况,但每当您将变量设置为字符串时,最好引用 "variable=value" 对。

    最后,* 通配符不会产生你所期望的效果,我不认为。您需要使用for /d 循环来扩展它,并延迟扩展以在该循环中附加%classpath%

    setlocal enabledelayedexpansion
    set "projectLocation=E:\Automation\Webdrive project\HTML5"
    cd /d "%projectLocation%"
    set "cp=%CLASSPATH%"
    
    rem // append *.jar recursively to cp
    for /r %%I in (*.jar) do (
        if not defined cp (set "cp=%%~fI") else set "cp=%%~fI;!cp!"
    )
    
    java -cp "%cp%" org.testng.TestNG "testng.xml"
    pause
    

    【讨论】:

    • 感谢您的回复...但还是不行。 E:\Automation\Webdrive project\HTML5>java org.testng.TestNG "testng.xml" 错误:无法找到或加载主类 org.testng.TestNG
      "Java 类文件路径 - E:\Automation\Webdrive project\HTML5\bin\Automation" "Lib 文件夹路径 - E:\Automation\Webdrive project\HTML5\lib" "Testng.XML 路径 - E:\Automation\Webdrive project\HTML5"
    • 伙计,我能做的就是指出你的批处理语法的问题。我不熟悉 Java 编程或其环境。我的猜测是类路径需要包含实际的 .jar 文件,而不仅仅是它们所在的目录。尝试编辑,看看你是否有更好的运气。
    【解决方案2】:

    cd %projectLocation% 后,驱动路径还在C:。

    执行 cd E:\ 切换驱动程序。由于 testng.xml 存在于 E: 驱动器中并且您试图从 C:\ 运行时触发未找到文件异常。

    试试这个:

    projectLocation=E:\Automation\Webdrive project\HTML5
    
    cd %projectLocation%
    
    set classpath=%projectLocation%\bin;%projectLocation%\lib*
    
    cd E:\
    
    java org.testng.TestNG %projectLocation%\testng.xml
    

    【讨论】:

    • 我试过这个.. 但它仍然不工作 E:\Automation\Webdrive project\HTML5>set projectLocation=E:\Automation\Webdrive project\HTML5 E:\Automation\Webdrive project\HTML5 >cd E:\Automation\Webdrive 项目\HTML5 E:\Automation\Webdrive 项目\HTML5>设置类路径=E:\Automation\Webdrive 项目\HTML5\bin;E:\Automation\Webdrive 项目\HTML5\lib* E :\Automation\Webdrive project\HTML5>cd E:\ E:\>java org.testng.TestNG E:\Automation\Webdrive project\HTML5\testng.xml 错误:无法找到或加载主类 org.testng.TestNG E:\>暂停
    • 我的文件夹路径是 - "Java 类文件路径 - E:\Automation\Webdrive project\HTML5\bin\Automation" "Lib 文件夹路径 - E:\Automation\Webdrive project\HTML5\lib" "Testng.XML 路径 - E:\Automation\Webdrive 项目\HTML5"
    【解决方案3】:

    我遇到了类似的问题,只需如下更改即可。

    projectLocation=E:\Automation\Webdrive project\HTML5
    cd %projectLocation%
    set classpath=%projectLocation%\bin;%projectLocation%\lib*
    cd..
    E:
    
    java org.testng.TestNG %projectLocation%\testng.xml
    

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 1970-01-01
      • 2021-01-06
      • 2020-03-08
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 2012-04-30
      • 2022-01-22
      相关资源
      最近更新 更多