JUnit从Spring上下文中的测试中排除基类

Ale*_*ndr 4 java spring unit-testing

我的所有单元测试都有与Spring注释相同的标题:

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

我将它们移动到基类,我的所有测试现在扩展它:

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

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

java.lang.Exception: No runnable methods
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ale*_*exR 10

使您的基类抽象化.问题是我认为它不是抽象的,所以测试运行器试图运行它并因此(IMHO愚蠢)原因失败.但它忽略了抽象类.