4

我所有的单元测试都具有相同的带有 Spring 注释的标头:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring/spring-master.xml"})
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@Transactional()

我将它们移至基类,现在我的所有测试都对其进行了扩展:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring/spring-master.xml"})
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@Transactional()
public class DomainObjectBaseTest {
...
public class SomeTest extends DomainObjectBaseTest {

现在,当我运行所有测试时,我正在为 DomainObjectBaseTest 获取:

java.lang.Exception: No runnable methods

我的问题是如何避免它?我可以删除@RunWith,但在这种情况下,我必须将注释应用于所有其他测试。代码太多,不喜欢。

可能,作为替代方案,我可以以某种方式在 Spring 组注释中,命名它,并从我的测试中引用该组,请告诉我是否可能。在这种情况下,我将完全删除基类。

并且可能有一种方法可以告诉这个类不应该被测试。我正在使用 JUnit4。

4

1 回答 1

11

使您的基类抽象。问题是我相信它不是抽象的,所以测试运行器尝试运行它并因为这个(恕我直言愚蠢)原因而失败。但它忽略了抽象类。

于 2013-05-21T07:40:43.443 回答