2017-10-09 53 views
1

我們最近遷移我們的測試框架JUnit5,並有使用@Disabled(UND ExecutionCondition S)在測試中的一些問題,這些問題用@SpringJUnitConfig: 在Junit4 @Ignore禁用測試執行沒有問題,不執行任何事情。使用Junit5和@Disabled,系統現在創建彈出環境,然後意識到不應該執行測試。在我們的情況下,這導致禁用測試失敗,因爲其中一些被禁用,因爲在某些情況下無法創建上下文。禁用測試與Spring和Junit5沒有上下文創建

是否有可能禁用JUnit5中的測試(類),以便不爲此測試創建彈簧上下文?

最少例如:

@TestInstance(Lifecycle.PER_CLASS) 
@RunWith(JUnitPlatform.class) // To support tests running in eclipse 
@SpringJUnitConfig(classes = {BaseTestSpringTest.TestConfiguration.class}) 
@Disabled 
public class BaseTestSpringTest { 

    @Configuration 
    @ComponentScan(basePackages = { "my.package" }) 
    public class TestConfiguration { 
    } 

    @Component 
    public class TestClass { 
     @PostConstruct 
     public void fail() { 
      throw new IllegalStateException(); 
     } 
    } 

    @Autowired 
    protected TestClass test; 

    @Test 
    public void test() throws Exception { 

    } 
} 
+0

如果您在Spring 5中使用'@ EnabledIf'或'@ DisabledIf',則不應該急於加載'ApplicationContext'。 –

+0

關於JUnit Jupiter中'@ Disabled'的使用,我不得不準確地看到(1)過去如何使用JUnit 4以及(2)現在JUnit Jupiter(JUnit 5)無法正常工作。 –

+0

您能否提供JUnit 4和JUnit Jupiter的示例? TIA! –

回答

2

這是JUnit中木星的錯誤,只有使用PER_CLASS測試實例的生命週期模式時,會發生。

我在JUnit 5問題跟蹤器中提出了以下問題來解決此問題。 https://github.com/junit-team/junit5/issues/1103

+0

該問題已在主服務器中得到解決,並在最新的5.1.0-SNAPSHOT版本中修復。 –

相關問題