gpt4 book ai didi

java - 如何使用 Junit 按顺序运行测试方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:46:23 27 4
gpt4 key购买 nike

我正在使用 JUnit 和 Selenium Webdriver。我想按照我在代码中编写它们的顺序运行我的测试方法,如下所示:

@Test
public void registerUserTest(){
// code
}

@Test
public void welcomeNewUserTest(){
// code
}

@Test
public void questionaireNewUserTest(){
// code
}

但它不起作用,它总是按以下顺序执行我的测试方法:

welcomeNewUserTest()
registerUserTest()
questionaireNewUserTest()

如果我用后缀 Test 命名我的方法,我会在某处读到一个答案,然后 JUnit 会按照我在代码中对它们的顺序执行它们。显然,这不起作用。

有什么帮助吗?谢谢

最佳答案

因此对于像这样的测试——其中的步骤相互依赖——你应该真正将它们作为一个单元来执行。你真的应该做这样的事情:

@Test
public void registerWelcomeAndQuestionnaireUserTest(){
// code
// Register
// Welcome
// Questionnaire
}

正如@Jeremiah 在下面提到的那样,有一些独特的方法可以让单独的测试无法预测地执行。

既然我已经说过了,这就是您的解决方案。

如果你想单独测试,你可以使用@FixMethodOrder然后按 NAME_ASCENDING 进行。这是我唯一知道的方法。

@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
}

}

关于java - 如何使用 Junit 按顺序运行测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36066767/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com