当我从cmd在maven模块中运行测试时,我发现Spring上下文可用于我的所有测试,即使它们没有扩展^
并且未使用AbstractTestNGSpringContextTests
注释。
但是,当我在Idea的测试目录中运行所有测试时,由于@ContextConfiguration
字段未初始化,因此某些测试因NPE而失败。最令人困惑的是,正如我所说,有些测试通过而其他测试都没有通过@Autowired
并且没有用AbstractTestNGSpringContextTests
注释,但是所有测试都需要Spring注入的字段。课程。当我在Idea中单独运行测试时,它们总是因NPE而失败,因为没有Spring注入。我是testng的新手,无法理解如何使用Spring上下文创建和运行套件。
顺便说一下,我们在Ubuntu机器上试过它,行为也不一样。单独的测试失败了,但是在没有注入相关的NPE问题的情况下运行包成功了。
有人遇到过类似的东西吗?
答案 0 :(得分:1)
问题似乎围绕IntelliJ / testNG而不是处理'组'正确。如果是一个班级" A"定义一个自动对象,该类中的@beforeGroups方法不能使用该对象。但是另一个班级" B"这扩展了课程" A"和" B"有一个@Test使用自动装配的对象,然后" B"可以使用该对象(在" A"中定义,它不起作用!!!)。 Eclipse中没有出现问题,或者在surefire控制testNG时使用Maven目标。
IntelliJ的解决方法是运行整个套件,而不仅仅是方法或类。如果我们创建一个新的套件文件并去除所有其他类,那么我们只能运行一个类。
答案 1 :(得分:0)