构建步骤“执行 Windows 批处理命令”将构建标记为失败已完成:失败
Posted
技术标签:
【中文标题】构建步骤“执行 Windows 批处理命令”将构建标记为失败已完成:失败【英文标题】:Build step 'Execute Windows batch command' marked build as failure Finished: FAILURE 【发布时间】:2015-12-27 00:28:56 【问题描述】:如果我自己执行 testng.xml,我已将我的项目配置为使用 Jenkins 运行 Build,它会成功执行我的测试用例,但如果我通过 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
【问题讨论】:
谁能解决我的这个问题???? 请正确设置路径,然后才能正常工作 Open CMD set classpath=C:\Users\Learn-automation\bin;C:\Users\Learn-automation\libs*;然后运行下面的命令,如果它从 cmd 运行正常,那么它将运行 java -cp bin;libs/* org.testng.TestNG testng.xml 好吧,我可以通过命令提示符运行测试套件,但是使用 Jenkins 失败让我再告诉你一件事,关于我的项目 1 的层次结构:D:\K - Selenium\SeleniumWorkspace\ iParkit_copy\bin\automationframework bin 之后有一个包文件夹,如果在设置类路径或任何其他成功运行它所需的插件时包含它,我们可以有一段时间的屏幕共享会话,以便您可以自己查看问题,我是通过电子邮件向您发送我的 Skype。谢谢 当涉及到(sendKeys)涉及使用 Jenkins 构建失败的步骤时,我观察到要添加的另一件事,请建议 这也是你的问题,是一样的。 [***.com/questions/34536895/… 但您在此处提供详细的错误日志。使用此代码: public WebDriver driver = null;你可以试试这个,但不确定这是否能解决你的问题。 【参考方案1】:在批处理脚本末尾使用exit /b 0
应该可以解决问题。
【讨论】:
这个答案很好,但如果您还可以解释命令的含义,它会更有帮助。【参考方案2】:批处理命令将检查最后一个命令的“错误级别”(返回代码)。 除零以外的任何值都将导致失败。 您没有提供太多详细信息,但您的浏览器似乎返回了非零错误级别。
您可以在浏览器之后运行一个虚拟命令来确定错误级别。或者修复导致非零错误级别的任何原因(推荐解决方案)
设置错误级别的常用虚拟命令示例是“ver > nul”
【讨论】:
你找到解决办法了吗? 答案应该更详细一些。虚拟命令是什么意思?怎么做?任何可能导致非零错误级别的示例。 "ver > nul" 是一个流行的虚拟命令。 “错误级别”返回代码完全是特定于应用程序的,因此不可能给出任何可能导致非零错误级别的一般示例。您必须检查相关应用程序的文档。以上是关于构建步骤“执行 Windows 批处理命令”将构建标记为失败已完成:失败的主要内容,如果未能解决你的问题,请参考以下文章