我已经将我的项目配置为使用Jenkins运行Build如果我自己执行testng.xml它成功执行我的测试用例但是如果我通过Jenkins执行我得到以下错误消息
构建步骤'执行Windows批处理命令'标记为失败 完成:失败
然而,如果测试用例输出只是使用`(system.out.println();)
,它会成功执行构建如果测试用例涉及打开浏览器,则会通过Jenkins失败
这是我的测试类
public WebDriver driver;
public String baseUrl = "http://iparkit.com/";
@BeforeMethod
public void initializeWebDriver() {
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get(baseUrl);
driver.manage().window().maximize();
}
//Close Browser after each test case execution
@AfterMethod
public void closeBrowser()
{
driver.close();
}
@Test(enabled=true) //TC2-01 - OK
public void iparkit_valid_email_password() throws InterruptedException
{
driver.findElement(By.xpath(".//*[@id='mast']/nav/ul/li[4]/a")).click();
driver.findElement(By.xpath(".//*[@id='email']")).sendKeys("imanltd+1@hotmail.com");
driver.findElement(By.xpath(".//*[@id='password']")).sendKeys("*******");
driver.findElement(By.xpath(".//*[@id='top']/div/main/form/main/fieldset[3]/button")).click();
String Expectedlnktext = driver.findElement(By.linkText("Sign Out")).getText();
String Actuallnktext = "Sign Out";
Assert.assertEquals(Actuallnktext,Expectedlnktext);
}
}
这是我的testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
<test name="Test">
<classes>
<class name="automationframework.Iparkittesting"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
这是最后一个控制台输出
Started by user anonymous
Building in workspace D:\K - Selenium\SeleniumWorkspace\iParkit_copy
[iParkit_copy] $ cmd /c call C:\Windows\TEMP\hudson4187523140058494240.bat
D:\K - Selenium\SeleniumWorkspace\iParkit_copy>run.bat
D:\K - Selenium\SeleniumWorkspace\iParkit_copy>java -cp bin;lib/* org.testng.TestNG testng.xml
[TestNG] Running:
D:\K - Selenium\SeleniumWorkspace\iParkit_copy\testng.xml
===============================================
Suite
Total tests run: 1, Failures: 1, Skips: 0
===============================================
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
答案 0 :(得分:0)
batch命令将检查最后一个命令的“错误级别”(返回码)。 除零之外的任何事都会导致失败。 您没有提供太多详细信息,但似乎您的浏览器返回非零错误级别。
您可以在浏览器之后运行虚拟命令以获得错误级别。或者修正导致非零错误级别的任何原因(推荐的解决方案)
设置错误级别的流行虚拟命令的示例是“ver&gt; nul”
答案 1 :(得分:0)
在批处理脚本末尾使用exit /b 0
应该可以解决问题。