我在Eclipse中使用Selenium Web Driver和JUnit。如果页面上存在某些文本,我需要创建简单的检查 - 如果是,则需要生成错误。我希望在JUnit故障跟踪中显示此错误。这是我的代码:
public class Check {
@Rule
public ErrorCollector errCollector = new ErrorCollector();
@FindBy(tagName="body")
@CacheLookup
private WebElement titl;
@FindBy(partialLinkText="Exception")
@CacheLookup
private WebElement excep;
public void check_false(String t, String r) {
try {
String bodyText = titl.getText();
Assert.assertFalse("Exception found", bodyText.contains(t)); }
catch (AssertionError e) {
System.err.println(r + ": " + e.getMessage());
System.out.println(excep.getText());
errCollector.addError(e);
}
}
如果我收到错误,它会显示在Eclipse consol中,但测试如果在JUnit中显示为没有错误,则不会显示异常消息。如何正确检查?
答案 0 :(得分:0)
我用
AssertJUnit.assertFalse(“Exception found”,bodyText.contains(t));
来自http://testng.org/doc/index.html 见http://testng.org/javadoc/org/testng/AssertJUnit.html
在我的测试失败的eclipse中,在junit窗口中我得到了stackstrace。从未尝试过收集错误。它会抛出一个
AssertionFailedError异常
如果测试失败但是如果你抓住它,我不知道堆栈跟踪是否在JUnit窗口中。
答案 1 :(得分:0)
这可能不是你所追求的,在这种情况下我道歉,但你可以简单地fail it并提供一个可选的消息,说明原因。
public void checkText(String actual, String expected){
try{
if(!expected.equals(actuals){
fail("Expected : [ " expected + " ] , actual [" + actual + "]"
}catch(SomeOtherException soe){
fail(soe.getMessage());
}
}