我需要在 Excel 报告中编写测试用例Pass/Fail
状态。如何以简单的方式捕获结果?在Ant XML/HTML
报告中显示状态(成功/失败),因此我认为必须有一些方法可以抓住这个......可能在@After Class
。
任何人都可以帮我解决这个问题吗?
我正在使用 Selenium Webdriver 与 JUnit4 并使用 Apache POI (哦,我的想法也是如此!)进行excel处理。如果您需要更多信息,请告诉我。
谢谢:)
P.S:当我提出很多问题时,如果有人可以改变或建议我做出改变,使这些问题和线索对其他人有用,那就太棒了。答案 0 :(得分:3)
我遇到了你的问题,这就是我现在在所有测试案例中所做的事情 -
在您的测试用例中,如果要检查2个字符串是否相等 -
您可能正在使用此代码 -
Assert.assertTrue(value1.equals(value2));
如果这些值不相等,则会生成AssertionError。
相反,您可以像这样更改代码 -
String testCaseStatus = "";
if(value1.equals(value2)){
testCaseStatus = "success";
}
else{
testCaseStatus = "fail";
}
现在,您将此结果存储在Excel工作表中,方法是将testCaseStatus
传递给您的代码,该代码会为您使用Apache POI实现的Excel添加一行。如果实现try catch块,也可以处理“错误”的条件。
例如,您可以捕获一些异常并将状态添加到Excel工作表中。
已编辑部分答案 -
我刚刚想出如何使用TestResult类 - 这是我发布的一些示例代码 -
这是名为ExampleTest的测试用例类 -
public class ExampleTest implements junit.framework.Test {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void test(TestResult result) {
try{
Assert.assertEquals("hari", "");
}catch(AssertionFailedError e){
result.addFailure(this, e);
}catch(AssertionError e){
result.addError(this, e);
}
}
@Override
public int countTestCases() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void run(TestResult result) {
test(result);
}
}
我从这段代码中调用上面的测试用例 -
public class Test {
public static void main(String[] args) {
TestResult result = new TestResult();
TestSuite suite = new TestSuite();
suite.addTest(new ExampleTest());
suite.run(result);
System.out.println(result.errorCount());
}
}
您可以通过将它们添加到此套件中来调用许多测试用例,然后使用TestResult类failures()和errors()方法获取整个结果。
您可以从here了解更多信息。