在下面的场景中,我预计步骤中的断言失败会导致测试失败。我所看到的是测试继续进行,并且由于@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运行测试。 (使用ThucydidesRunner)
答案 0 :(得分: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));
}
}
答案 1 :(得分:1)
事实证明测试不会停止,这是我从修昔底德的创作者那里得到的回复:
“测试不能立即停止,或者不可能知道哪些步骤没有被执行,所以,是的,这是设计的。他们会记录第一个断言错误,然后执行”干 - 运行“模式(没有进行WebDriver调用),但这是它可以保证的最多。”