簡體   English   中英

JUnit測試在不應該執行時執行

[英]JUnit test is getting executed when it's not supposed to

我是JUnit新手。 以下是我的類層次結構,其中層次結構頂部和底部的類具有@Test方法。 當我執行整個束時,位於層次結構中間的ConverterBaseEnquiryTest也會被執行。 (這是我的猜測,因為我在使用此名稱的surefire報告中看到異常)。

我從ConverterBaseEnquiryTest獲得初始化錯誤,因為它不應該被執行。 有沒有辦法弄清楚為什么會這樣?

以下是我的層次結構:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { 
    "classpath:spring/test-default-context.xml"
})
@TransactionConfiguration( transactionManager="profile.transactionManager", defaultRollback=false )
@Ignore
public class BaseCommonTest extends AbstractTransactionalJUnit4SpringContextTests {


abstract public class ConverterBaseTest<F,T> extends BaseCommonTest {
    // ...
}

public class ConverterBaseEnquiryTest<F, T> extends ConverterBaseTest<Enquiry, T> {
    // ...
}

public class EnquiryToDvsMedicareRequestConverterTest extends ConverterBaseEnquiryTest<Enquiry, DvsMedicareRequest> {
    // ...
}

我認為這是因為@Ignore注釋不可繼承,因此JUnit將在子類中執行測試。 (雖然發布堆棧跟蹤會對我們有幫助)。

這意味着您還需要在所有子類上放置@Ignore

或者,為了避免這種情況,您可以在基類上使用@IfProfileValue (繼承)來禁用測試。 這是SpringJUnit4ClassRunner支持的Spring注釋。

暫無
暫無

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

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