@Test
public void registerUserTest(){
// code
}
@Test
public void welcomeNewUserTest(){
// code
}
@Test
public void questionaireNewUserTest(){
// code
}
welcomeNewUserTest()
registerUserTest()
questionaireNewUserTest()
因此,对于这样的测试--步骤是相互依赖的--您应该将它们作为一个单元来执行。你真的应该做这样的事情:
@Test
public void registerWelcomeAndQuestionnaireUserTest(){
// code
// Register
// Welcome
// Questionnaire
}
正如@Jeremiah在下面提到的,有一些独特的方法可以不可预测地执行单独的测试。
既然我已经说了,这是你的解决办法。
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestMethodOrder {
@Test
public void testA() {
System.out.println("first");
}
@Test
public void testC() {
System.out.println("third");
}
@Test
public void testB() {
System.out.println("second");
}
}
将执行:
testa()、testB()、testC()
在您的情况下:
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class ThisTestsEverything{
@Test
public void T1_registerUser(){
// code
}
@Test
public void T2_welcomeNewUser(){
// code
}
@Test
public void T3_questionaireNewUser(){
// code
}
}
问题内容: 我正在使用JUnit和Selenium Webdriver。我想按照我在代码中的编写方式来运行测试方法,如下所示: 但是它不起作用,它总是按以下顺序执行我的测试方法: 如果我用后缀Test命名方法,我会在某处读到答案,然后JUnit会按照我在代码中的排序方式依次执行它们。显然,这不起作用。 有什么帮助吗?谢谢 问题答案: 因此,对于此类测试(步骤彼此依赖),您应该真正将它们作为一个单元
如何按特定顺序运行quarkus测试?通常我们有@InSequence注释(来自arquillian IIRC),我们可以实现这一点。 但是我没有找到任何类似的Quarkus在"org.junit.jupiter.api"软件包提供Quarkus-朱尼5。 它将以一个替代的顺序运行,我试图使用org.junit.jupiter.api.顺序与@Testmetodorder(方法命令。nnotati
在我的场景中,基准测试中的方法应该在一个线程中按顺序运行并按顺序修改状态。 例如,有一个
问题内容: 假设JUnit按顺序执行测试用例是否合理:测试用例在下一个测试用例开始之前结束。JUnit版本之间是否有所不同(我的优先级在JUnit4上)?如果没有,是否有一种简单的方法可以强制JUnit按顺序执行测试? 谢谢 问题答案: 是的,默认情况下,我相信它会按顺序运行测试。 JUnit 4.6引入了一个实验来并行运行测试- 我不知道它的当前状态。我希望并行机制在默认情况下仍保持“选择加入”
问题内容: 我有一些测试UI的测试,也可以用来创建数据。 单独的一组测试依赖于此数据,这意味着这些测试必须仅在第一组运行之后才能运行。 我知道要运行一组或使用标签运行它们,但是如何按特定顺序运行它们呢? 问题答案: Nightwatch将按顺序运行特定文件中的每个测试,因此(一个简单的)解决方案是将每个测试按您希望它们运行的顺序放入同一文件中。 如果单个文件的测试太多,这将变得很麻烦。要解决此
问题内容: 我在Java中有一个测试类,在其中有@Test注释的几种方法,以某种方式,当我运行整个测试时,我想在方法B之前先运行Junit方法A。有可能还是有必要? 问题答案: 这种对测试方法的依赖是不好的设计,应该避免。如果一个测试方法中有初始化代码需要为下一个测试方法完成,则应将其分解为setUp方法。