gpt4 book ai didi

带有JUnit测试套件错误的SpringJUnit4ClassRunner

转载 作者:行者123 更新时间:2023-12-04 18:11:45 27 4
gpt4 key购买 nike

我尝试首次使用Spring设置Junit测试套件,并尝试在类中进行一些更改,但是没有运气,最终出现此错误:“junit.framework.AssertionFailedError:在Myclass中找不到测试”

简而言之,我有2个测试类都来自同一基类,该基类如下所示加载Spring上下文

@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration( locations =
{
"classpath:ApplicationContext.xml"
})

我尝试将这2个测试类添加到套件中,如下所示
@RunWith( SpringJUnit4ClassRunner.class )
@SuiteClasses({ OneTest.class, TwoTest.class })
public class MyTestSuite extends TestCase {

//nothing here
}

我正在从ant运行此测试套件。但是,这给了我一个错误,提示“未找到测试”
但是,如果我从ant运行单个2个测试用例,它们将正常工作。不知道为什么会这样,我肯定在这里遗漏了一些东西。请指教。

最佳答案

如评论中所述,我们使用@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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com