Как запустить тестовые классы контроллера по порядку с пружинным интеграционным тестом - PullRequest
0 голосов
/ 14 апреля 2019

Запуск тестовых классов контроллера по порядку.

У меня есть эти тестовые классы ниже.

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc(addFilters = false)
public class UserControllerTest {
    @Autowired
    private MockMvc mockMvc;

    @Test
    public void findAll() throws Exception {
        MvcResult result = mockMvc
                .perform(get("/api/user").contentType(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk()).andReturn();

        MockHttpServletResponse response = result.getResponse();
        RestResponse restResponse = mapper.readValue(response.getContentAsString(), RestResponse.class);
        Assert.assertEquals(restResponse.getHttpStatus().name(), HttpStatus.OK.name() );
    }
}

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc(addFilters = false)
public class ProductControllerTest {
    @Autowired
    private MockMvc mockMvc;

    @Test
    public void findAll() throws Exception {
        MvcResult result = mockMvc
                .perform(get("/api/product").contentType(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk()).andReturn();

        MockHttpServletResponse response = result.getResponse();
        RestResponse restResponse = mapper.readValue(response.getContentAsString(), RestResponse.class);
        Assert.assertEquals(restResponse.getHttpStatus().name(), HttpStatus.OK.name() );
    }

}

Я хочу запустить тестовые классы этого контроллера по порядку.Например, первый UserControllerTest запускается после этого ProductControllerTest.

Как я могу это сделать?

Спасибо.

1 Ответ

0 голосов
/ 14 апреля 2019

Если у вас есть Junit 5 в качестве зависимости, вы можете контролировать полный контроль порядка методов , но внутри самого тестового класса, используя @TestMethodOrder.

Относительно порядок тестовых классов самих по себе не так много контроля доступны.Документы Maven Failsafe говорят о конфигурации <runOrder>:

Поддерживаемые значения: «алфавитный», «обратный алфавитный», «случайный», «почасовой» (алфавитный в четные часы, обратный алфавитный в нечетные часы), "failedfirst", "сбалансированный" и "файловая система".

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>3.0.0-M3</version>
    <configuration>
      <runOrder>alphabetical</runOrder>
    </configuration>
    <executions>
      <execution>
        <goals>
          <goal>integration-test</goal>         
        </goals>
      </execution>
    </executions>
  </plugin>
...