1

我需要在Excel报告中写入测试用例Pass/Fail状态。如何以简单的方式捕获结果?在 Ant报告中显示状态(成功/失败),所以我相信一定有某种方法可以捕捉到这个……可能在. 谁能帮我解决这个问题?XML/HTML@After Class

我正在将Selenium WebdriverJUnit4一起使用,并使用Apache POI(哦,这也让我心烦意乱!)进行 excel 处理。如果您需要更多信息,请告诉我。

谢谢 :)

PS:当我问了很多问题时,如果有人可以更改或建议我更改以使这些问题和线程对其他人有所帮助,那就太好了。

4

1 回答 1

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() 方法获取整个结果。

您可以从这里阅读更多信息。

于 2012-07-25T05:32:30.873 回答