如何在bat文件中运行testng.xml

时间:2016-02-17 13:34:39

标签: batch-file selenium

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

  

projectLocation = E:\ Automation \ Webdrive project \ HTML5

     

cd%projectLocation%

     

设置classpath =%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)

3 个答案:

答案 0 :(得分:0)

使用

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

答案 1 :(得分:0)

在cd%projectLocation%之后,驱动器路径仍然在C:。

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

试试这个:

projectLocation=E:\Automation\Webdrive project\HTML5

cd %projectLocation%

set classpath=%projectLocation%\bin;%projectLocation%\lib*

cd E:\

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

答案 2 :(得分:0)

我遇到了类似的问题,只需更改如下。它将起作用

projectLocation=E:\Automation\Webdrive project\HTML5
cd %projectLocation%
set classpath=%projectLocation%\bin;%projectLocation%\lib*
cd..
E:

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