Rag*_*son 8 java junit automated-tests selenium-webdriver
我正在使用JUnit和Selenium Webdriver.我想按照我在代码中编写测试方法的顺序运行我的测试方法,如下所示:
@Test
public void registerUserTest(){
// code
}
@Test
public void welcomeNewUserTest(){
// code
}
@Test
public void questionaireNewUserTest(){
// code
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它总是按此顺序执行我的测试方法:
welcomeNewUserTest()
registerUserTest()
questionaireNewUserTest()
Run Code Online (Sandbox Code Playgroud)
如果我用后缀Test命名我的方法,那么我在某处读了一个答案,然后JUnit将按顺序执行它们,就像我在代码中命令它们一样.显然,这不起作用.
有帮助吗?谢谢
因此,对于像这样的测试 - 步骤彼此依赖 - 您应该将它们作为一个单元执行.你真的应该这样做:
@Test
public void registerWelcomeAndQuestionnaireUserTest(){
// code
// Register
// Welcome
// Questionnaire
}
Run Code Online (Sandbox Code Playgroud)
正如@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");
}
}
Run Code Online (Sandbox Code Playgroud)
将执行:
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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |