簡體   English   中英

使用Maven執行Junit測試

[英]Execute Junit tests using Maven

我在src / test / java下有兩個要運行的類: scen1.classscen2.class 這兩個都有@Test注釋方法。

我有一個稱為另一個類JunitDefinitions.class一個只有@Before@After@BeforeClass@AfterClass方法(無@Test)。 這也在src / test / java下,但是在不同的軟件包下。

假設我具有默認的pom.xml ,我應該在其中添加什么才能執行所有這三個類?

  • 你的測試類重命名為Scen1Test.java和Scen2Test.java或使用包括JunitFW.java,Scen1.java和Scen2.java <includes>的配置,因為它中描述真實文檔
  • JunitFW類僅包含@Before,因此不會檢測為Test。 您必須將@Before移至包含@Test的類,或在JunitFW類中包含@Test並將其重命名為JunitFWTest才能使其正常工作。

默認情況下,Surefire插件將自動包含具有以下通配符模式的所有測試類:

"**/Test*.java" - includes all of its subdirectories and all Java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all Java filenames that end with "Test".
"**/*Tests.java" - includes all of its subdirectories and all Java filenames that end with "Tests".
"**/*TestCase.java" - includes all of its subdirectories and all Java filenames that end with "TestCase".

除了將您的類重命名為@viniciusartur所建議的Scen1Test.java和Scen2Test.java之類的名稱外,這還將有助於Maven識別測試類以使用surefire-plugin執行它們。

這里要注意的另一點是,由於其中的原因@Before@BeforeClass@After等不無獨立執行@Test方法是,只有

Test注釋告訴JUnit, 可以將它附加到的public void方法作為測試用例運行 為了運行該方法,JUnit首先構造一個新的類實例,然后調用帶注釋的方法。

來自JUnit中@Before文檔

使用@Before注釋公共void方法會使該方法在Test方法之前運行。 超類的@Before方法將在當前類的方法之前運行。

因此可以推斷,在處理注釋時,如果/src/test/java下的類中不存在@Test注釋(相對於基於maven的問題),則沒有其他有意義的注釋需要處理。

只是要注意,如果使用包含@Test method另一個SubClassTest.java擴展此類,則將執行所有這些方法。 由於它們是根據對( @Test )進行處理而處理的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM