在Intellij Idea中使用Spring上下文运行testng

时间:2015-05-18 13:46:45

标签: spring intellij-idea testng

当我从cmd在maven模块中运行测试时,我发现Spring上下文可用于我的所有测试,即使它们没有扩展^并且未使用AbstractTestNGSpringContextTests注释。

但是,当我在Idea的测试目录中运行所有测试时,由于@ContextConfiguration字段未初始化,因此某些测试因NPE而失败。最令人困惑的是,正如我所说,有些测试通过而其他测试都没有通过@Autowired并且没有用AbstractTestNGSpringContextTests注释,但是所有测试都需要Spring注入的字段。课程。当我在Idea中单独运行测试时,它们总是因NPE而失败,因为没有Spring注入。我是testng的新手,无法理解如何使用Spring上下文创建和运行套件。

顺便说一下,我们在Ubuntu机器上试过它,行为也不一样。单独的测试失败了,但是在没有注入相关的NPE问题的情况下运行包成功了。

有人遇到过类似的东西吗?

2 个答案:

答案 0 :(得分:1)

问题似乎围绕IntelliJ / testNG而不是处理'组'正确。如果是一个班级" A"定义一个自动对象,该类中的@beforeGroups方法不能使用该对象。但是另一个班级" B"这扩展了课程" A"和" B"有一个@Test使用自动装配的对象,然后" B"可以使用该对象(在" A"中定义,它不起作用!!!)。 Eclipse中没有出现问题,或者在surefire控制testNG时使用Maven目标。

IntelliJ的解决方法是运行整个套件,而不仅仅是方法或类。如果我们创建一个新的套件文件并去除所有其他类,那么我们只能运行一个类。

答案 1 :(得分:0)