作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试首次使用Spring设置Junit测试套件,并尝试在类中进行一些更改,但是没有运气,最终出现此错误:“junit.framework.AssertionFailedError:在Myclass中找不到测试”
简而言之,我有2个测试类都来自同一基类,该基类如下所示加载Spring上下文
@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration( locations =
{
"classpath:ApplicationContext.xml"
})
@RunWith( SpringJUnit4ClassRunner.class )
@SuiteClasses({ OneTest.class, TwoTest.class })
public class MyTestSuite extends TestCase {
//nothing here
}
最佳答案
如评论中所述,我们使用@RunWith(Suite.class)
运行TestSuite并使用@SuiteClasses({})
列出所有测试用例。为了不在每个测试用例中重复@RunWith(SpringJunit4ClassRunner.class)
和@ContextConfiguration(locations = {classpath:META-INF/spring.xml})
,我们创建了一个AbstractTestCase,在其上定义了这些批注,并为所有测试用例扩展了该抽象类。可以在下面找到一个示例:
/**
* An abstract test case with spring runner configuration, used by all test cases.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations =
{ "classpath:META-INF/spring.xml" })
public abstract class AbstractSampleTestCase
{
}
public class SampleTestOne extends AbstractSampleTestCase
{
@Resource
private SampleInterface sampleInterface;
@Test
public void test()
{
assertNotNull(sampleInterface);
}
}
public class SampleTestTwo extends AbstractSampleTestCase
{
@Resource
private SampleInterface sampleInterface;
@Test
public void test()
{
assertNotNull(sampleInterface);
}
}
@RunWith(Suite.class)
@SuiteClasses(
{ SampleTestOne.class, SampleTestTwo.class })
public class SampleTestSuite
{
}
AbstractSampleTest
,那么您需要在每个测试用例上重复使用SpringRunner注释,直到Spring提出一个
SpringJunitSuiteRunner
,类似于他们添加
SpringJunitParameterizedRunner
的方式。
关于带有JUnit测试套件错误的SpringJUnit4ClassRunner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12429719/
我是一名优秀的程序员,十分优秀!