2

在下面的场景中,我希望步骤中的断言失败应该使测试失败。我看到的是测试仍在继续,并且由于 @Test 方法中的后续断言失败,因此报告了错误的异常,因此难以调试。

无论如何,当@Step 中的断言失败时,我可以让测试停止吗?

@Test
public void test() {
    ....
    steps.step1();

    System.out.println("test should not reach here");
    assertTrue(false);
}

@Step
public void step1() {
    assertTrue(false);
}

尝试从我的 IDE 和 Maven 运行测试。(使用修昔底德跑步者)

4

2 回答 2

1

尝试检查这个:http ://thucydides.info/docs/thucydides/_creating_a_new_thucydides_project.html

简而言之,分步骤:

import net.thucydides.core.annotations.Step;
import static org.fest.assertions.Assertions.assertThat;
import static org.hamcrest.Matchers.is;

public class EndUserSteps extends Scenario Steps {
@Step
public void someStep() {
   assertThat(true, is(false));
  }
}
于 2013-10-30T19:41:41.180 回答
1

事实证明,测试并没有停止,这是我从修昔底德的创造者那里得到的回复:

“测试不能立即停止,或者无法知道哪些步骤没有执行,所以,是的,这是设计使然。他们确实记录了第一个断言错误,然后以“试运行”模式运行这些步骤(没有进行 WebDriver 调用),但这是它可以保证的最多。”

于 2013-11-19T13:29:02.883 回答