如何使用Spring Boot运行多个测试

时间:2017-05-13 07:58:10

标签: spring-boot

使用Spring Boot 1.5,我怎么能运行不同类的多个测试?

E.g。

I have `Service1` tests in `Service1test.java`;

I have `Service2` tests in `Service2test.java`;

我需要一次完成两个。

2 个答案:

答案 0 :(得分:6)

我所做的如下: 在主要班级

@RunWith(Suite.class)
@Suite.SuiteClasses({
        PostServiceTest.class,
        UserServiceTest.class
})
public class DataApplicationTests {
    @Test
    public void contextLoads() {
    }
}

在PostServiceTest中我有

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class PostServiceTest  {
    @Autowired
    IPostService postService;

    @Before
    public void initiate() {
        System.out.println("Initiating the before steps");
    }

    @Test
    public void testFindPosts() {
        List<Post> posts= postService.findPosts();
        Assert.assertNotNull("failure - expected Not Null", posts);       
    }
}

第二类UserServiceTest具有类似的结构。

当我运行DataApplicationTests时,它会同时运行两个类。

答案 1 :(得分:3)

我假设你使用的是IntelliJ,但同样的东西适用于所有的IDE。

Gradle和Maven有一个标准化的项目结构,这意味着所有测试类都位于&#39; test-root&#39;将在mvn测试(仅测试)或构建时运行(以检查代码是否正常运行。在这种情况下,如果测试失败,则构建也会失败。)

这是IntelliJ上标记为绿色的测试目录的图像:enter image description here

您的IDE应该允许您单独运行特定的测试,测试套件或类,而无需键入任何命令。 IntelliJ在分隔符列上提供了一些图标(靠近行号),使您可以运行特定的东西。看看这些绿色播放按钮:enter image description here

小心创建测试套件。这样,除非您手动配置需要运行的测试,否则您将获得重复运行,因为构建工具将独立运行所有测试套件,然后是所有测试! (这意味着如果测试套件A包含测试套件B和C,则B和C将要运行2次:每次A和1,每次独立。这同样适用于独立测试类。)