我的所有单元测试都有与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。
答案 0 :(得分:10)
使您的基类抽象化。问题是我认为它不是抽象的,所以测试运行器试图运行它并因此(IMHO愚蠢)原因失败。但它忽略了抽象类。