我有一个run-tests.bat文件,如下所示(提供给我们)。这个bat文件与许多其他文件一起位于一个目录中并被压缩。它是一个独立的testng目录。除了这个文件,在目录中subdirectorys的lib /和驱动器/和lib /的确有TestNG的:导航到bat(或任何)文件时的默认目录
@ECHO [email protected] OFF
SET javacmd=
SET javacp=-classpath ".;lib/*"
SET jvmparams=-Dwebdriver.ie.driver="drivers/IEDriverServer.exe" - Dwebdriver.chrome.driver="drivers/chromedriver.exe"
IF "%JAVA_HOME%"=="" (
SET javacmd=java
) ELSE (
SET javacmd="%JAVA_HOME%\bin\java"
)
for /f tokens^=2-5^ delims^=.-_^" %%j in ('%javacmd% -fullversion 2^>^&1') do set "jver=%%j%%k%%l%%m"
IF %jver% LSS 17000 (
ECHO Java version is not supported. Please install Java 1.7 or greater.
GOTO RETURN
)
%javacmd% %javacp% %jvmparams% org.testng.TestNG testng.xml
:RETURN
IF -%1-==-- (
PAUSE
)
当我在我的机器上运行此,它工作正常。我需要将其复制到共享目录,以便其他人可以运行它。我将它复制到一个共享目录并进行测试,并且运行良好。我用文件浏览器导航,然后双击。
当我让测试人员从他的机器上完成它时,cmd窗口就会出现并消失。我在里面放了一些暂停,看看它失败的地方。 %jver%是17045,所以它超过了这条线。它在%javacmd%命令失败,并表示无法找到(或加载)org.testng.TESTNG。当我从我的机器上运行它而不是从他的机器运行时,它发现它很好。
我唯一的想法是,当我双击将.bat文件,不知何故它的CD我到正确的目录,但保留他在他的目录中,以便SET javacp = -classpath“ LIB/” *设置lib/。在他自己的目录中,而不是在解压缩的目录中。我试图找出当你点击一个.bat文件时,无论它是否将光盘放到一个目录中,但找不到它。
那么,我的理论为什么它不正确,还是有其他原因,我没有看到?我验证了我的DOS版本和他是一样的,6.1.7601,我们使用的是Windows 7都和他有Java 7中