java - 即使构建成功后,通过 jenkins 执行批处理文件时也不会执行测试用例

标签 java batch-file jenkins selenium-webdriver testng

我尝试在 TestNG 中执行测试用例。我创建了一个 TestNG.xml 文件。我想通过 Jenkins 运行它,所以我为此创建了一个批处理文件。当我从 Jenkins 运行 testNG.bat 时。它显示构建状态为“成功”,但没有执行任何测试用例。相同的 testng.xml 在 eclipse 中运行时工作正常。

以下是TestNG.xml--

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test name="Test">
    <classes>
      <class name="pkg1.Class1"/>
       <class name="pkg1.Class3"/>
       <class name="pkg2.Class4"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

下面是Testng.bat---

cd C:\Users\Vinay\workspace_n\$$POM
set ProjectPath=C:\Users\Vinay\workspace_n\$$POM
echo %ProjectPath%
set classpath=%ProjectPath%\bin;%ProjectPath%\lib\*
echo %classpath%
java org.testng.TestNG %ProjectPath%\testng.xml
pause

以下是在jenkins上运行构建后的结果

10:30:18 Started by user anonymous
10:30:18 Building in workspace C:\Users\Vinay\workspace_n\$POM
10:30:18 [$POM] $ cmd /c call C:\Windows\TEMP\hudson7515512989309656489.bat
10:30:18 
10:30:18 C:\Users\Vinay\workspace_n\$POM>cd C:\Users\Vinay\workspace_n\$$POM 
10:30:18 
10:30:18 C:\Users\Vinay\workspace_n\$$POM>set ProjectPath=C:\Users\Vinay\workspace_n\$$POM 
10:30:18 
10:30:18 C:\Users\Vinay\workspace_n\$$POM>echo C:\Users\Vinay\workspace_n\$$POM 
10:30:18 C:\Users\Vinay\workspace_n\$$POM
10:30:18 
10:30:18 C:\Users\Vinay\workspace_n\$$POM>set classpath=C:\Users\Vinay\workspace_n\$$POM\bin;C:\Users\Vinay\workspace_n\$$POM\lib\* 
10:30:18 
10:30:18 C:\Users\Vinay\workspace_n\$$POM>echo C:\Users\Vinay\workspace_n\$$POM\bin;C:\Users\Vinay\workspace_n\$$POM\lib\* 
10:30:18 C:\Users\Vinay\workspace_n\$$POM\bin;C:\Users\Vinay\workspace_n\$$POM\lib\*
10:30:18 
10:30:18 C:\Users\Vinay\workspace_n\$$POM>java org.testng.TestNG C:\Users\Vinay\workspace_n\$$POM\testng.xml 
10:30:19 [TestNG] Running:
10:30:19   C:\Users\Vinay\workspace_n\$$POM\testng.xml
10:30:19 
10:30:19 
10:30:19 ===============================================
10:30:19 Suite
10:30:19 Total tests run: 0, Failures: 0, Skips: 0
10:30:19 ===============================================
10:30:19 
10:30:19 
10:30:19 C:\Users\Vinay\workspace_n\$$POM>pause
10:30:19 Press any key to continue . . . 
10:30:19 
10:30:19 C:\Users\Vinay\workspace_n\$$POM>exit 0 
10:30:20 Finished: SUCCESS

将批处理文件更新为以下内容。

cd C:\Users\Vinay\workspace_n\$$POM
set ProjectPath=C:\Users\Vinay\workspace_n\$$POM
echo %ProjectPath%
set classpath=%ProjectPath%\bin;%ProjectPath%\lib\*
echo %classpath%
java org.testng.TestNG -log 10 %ProjectPath%\testng.xml
pause

我得到以下结果。

09:55:05 C:\Users\Vinay\workspace_n\$$POM>java org.testng.TestNG -log 10 C:\Users\Vinay\workspace_n\$$POM\testng.xml 
09:55:05 [TestRunner] Running the tests in 'Test' with parallel mode:false
09:55:05 [RunInfo] Adding method selector: org.testng.internal.XmlMethodSelector@490d6c15 priority: 10
09:55:05 [TestNGClassFinder] SKIPPING CLASS class pkg1.Class3 no TestNG annotations found
09:55:05 [TestNGClassFinder] SKIPPING CLASS class pkg2.Class4 no TestNG annotations found
09:55:05 [TestNGClassFinder] SKIPPING CLASS class pkg1.Class1 no TestNG annotations found
09:55:05 [TestNG] Running:
09:55:05   C:\Users\Vinay\workspace_n\$$POM\testng.xml
09:55:05 
09:55:05 [SuiteRunner] Created 1 TestRunners
09:55:05 [TestRunner] Running test Test on 0  classes,  included groups:[] excluded groups:[]
09:55:05 [TestNG] RUNNING: Suite: "Test" containing "0" Tests (config: C:\Users\Vinay\workspace_n\$$POM\testng.xml)
09:55:05 ===== Invoked methods
09:55:05 =====
09:55:05 Creating C:\Users\Vinay\workspace_n\$$POM\test-output\Suite\Test.html
09:55:05 Creating C:\Users\Vinay\workspace_n\$$POM\test-output\Suite\Test.xml
09:55:05 
09:55:05 ===============================================
09:55:05     Test
09:55:05     Tests run: 0, Failures: 0, Skips: 0
09:55:05 ===============================================
09:55:05 

以下是其中一个类。

package pkg1;

import org.testng.annotations.Test;


public class Class1 {

    @Test(priority=1)
    void pkg111() {
        System.out.println("pkg1 class1 p1");
    }

    @Test(priority=4)
    void pkg121() {
        System.out.println("pkg1 class1 p4");
    }

    @Test(priority=3)
    void pkg131() {
        System.out.println("pkg1 class1 p3");
    }
}

最佳答案

按照@juherr提供的步骤,我已将 TestNG 版本从 6.8 更新到 6.11。现在我可以通过 jenkins 执行测试用例。

关于java - 即使构建成功后,通过 jenkins 执行批处理文件时也不会执行测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43817018/

相关文章:

java - 如何修复向谷歌报告成就时的 'CLIENT_RECONNECT_REQUIRED' 问题

java - Jenkins 2.60.2 运行 Gradle 任务时返回 "CreateProcess error=267, The directory name is invalid"

macos - 启动jenkins容器,但是遇到权限被拒绝,尽管我已经对该卷运行了 'chown'

batch-file - 批处理文件 'for' 循环 - 多行

batch-file - 批处理 - 减少子字符串中变量的值不起作用

java - Maven 在创建 war/jat 时忽略资源文件。如何强制它包含它们?

jenkins - 如何检查 node() 是否已分配

java - 更改固定线程池最大池大小

java - 在框架中显示我的打印线条

java - 导致在文件移动到特定文件时打开批处理文件