【问题标题】:using JUnitCore together with Spring将 JUnitCore 与 Spring 一起使用
【发布时间】:2013-02-19 11:38:19
【问题描述】:

我想从主类执行测试。我试过了:

public static void main(String[] args) {
    JUnitCore runner = new JUnitCore();
    runner.run(TestClass.class);
}

public static void main(String[] args) {
    JUnitCore.main(TestClass.class.getName());
}

但是,此测试使用的是 Spring 框架,并且未加载 bean。 我的测试类如下所示:

@NoDataSet
@ContextConfiguration(locations = { "/.../xxx-beans.xml", "/.../yyy-beans.xml",
                    "..." }, inheritLocations = false)
@RunWith(SpringJUnit4ClassRunner.class)
public class TestClass extends AbstractTransactionalJUnit4SpringContextTests {
    @BeforeClass
    public static void beforeClass() {
        // some config
    }

    @Test
    public void testSomething() {
        // testsomething
    }
}

我使用了很多 bean,因此我无法手动加载 bean。

还有其他方法可以开始这个测试吗?

【问题讨论】:

    标签: java spring junit junit4


    【解决方案1】:

    试试

    new JUnitCore().run(new SpringJUnit4ClassRunner(Test1.class));
    

    或简单地添加

    @RunWith(SpringJUnit4ClassRunner.class) to TestClass
    

    【讨论】:

    【解决方案2】:

    该类缺少@RunWith(SpringJUnit4ClassRunner.class) 注释。如果没有这个注解,即使你的构建工具或 IDE 也无法正确执行。

    【讨论】:

    • 这只是一个例子。我的原始代码中有这个注释,测试在我的 IDE 中工作(而不是在主类中)。
    【解决方案3】:

    我发现了问题。显然,我的工作目录设置为不正确的位置。

    我现在使用以下主要方法:

    public static void main(String[] args) {
        JUnitCore runner = new JUnitCore();
        runner.run(TestClass.class);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 1970-01-01
      • 2011-01-15
      • 2014-03-10
      • 2021-01-02
      • 2013-02-09
      • 2017-08-27
      • 2021-09-03
      • 2020-02-23
      相关资源
      最近更新 更多