2017-05-13 30 views
1

使用Spring Boot 1.5,我如何運行多個不同類的測試?如何使用Spring Boot運行多個測試

E.g.

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

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

我需要一次運行。

+0

只需執行maven的測試目標或其等價的gradle,如果你的gradle中是。這將運行您項目中的所有測試。 –

+0

你只想運行這兩個測試,或者如果你運行所有的測試,它可以嗎? – pvpkiran

+0

我正在使用Intellij IDE運行測試,我想從一個命令或一個父類運行所有測試。基本上,它歸結爲如何將單獨的測試類納入其中。 – nomadus

回答

0

我會假設你使用的是IntelliJ,但同樣的東西適用於所有的集成開發環境。

Gradle和Maven已經有了一個標準化的項目結構,這意味着位於'test-root'內部的所有Test類都將在mvn測試(僅用於測試)上運行,或者在您構建時檢查代碼行爲正確,在這種情況下,如果測試失敗,構建失敗)。

這裏有一個的IntelliJ標 - 綠色測試目錄的映像:enter image description here

你的IDE應該讓你seperately運行特定的測試,測試套件或類,而不需要輸入任何命令。 IntelliJ在分隔符列thingy(靠近行號)提供了一些圖標,使您可以運行特定的內容。看看這些綠色的播放按鈕:enter image description here

小心,雖然創建測試套件。這樣,除非您手動配置需要運行的測試,否則您將得到重複運行,因爲構建工具將獨立運行所有測試套件,然後運行所有測試! (這意味着如果測試套件A包含測試套件B和C,則B和C將運行2次:每個來自A,每個獨立1個,這同樣適用於獨立測試類)。

2

我所做的是: 在主類

@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,它運行兩個類。

相關問題