显示JUnit故障跟踪中的错误

时间:2012-07-23 08:22:22

标签: java selenium junit webdriver

我在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中显示为没有错误,则不会显示异常消息。如何正确检查?

2 个答案:

答案 0 :(得分:0)

我用

  

AssertJUnit.assertFalse(“Exception found”,bodyText.contains(t));

来自http://testng.org/doc/index.htmlhttp://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());
  }
 }