我编写了一些当前从Maven运行的JUnit集成测试(通过命令行或CI服务器)。这些集成测试在Maven的“预集成测试”生命周期阶段内自动配置和启动数据库和servlet容器。
我非常希望在Eclipse JUnit启动配置中运行这些JUnit测试(就像我做所有其他测试一样)。但是,JUnit启动配置不会触发预集成测试执行,因此未正确建立测试环境。
什么是最好的方法让它发挥作用?
答案 0 :(得分:3)
您可以使用Run -> Run Configurations
设置Maven运行配置在Eclipse中运行,假设您拥有Eclipse的Maven插件。使用目标clean verify
将运行单元测试和集成测试。
此外,如果您使用故障安全报告Maven插件,您可以创建JUnit样式报告,您可以使用JUnit框架在Eclipse中打开它,以查看哪些测试通过并失败。
答案 1 :(得分:2)
我刚刚发现的一种方法是使用Eclipse Launch Groups,如下所示:
我错过了这个,因为这个功能,虽然语言无关需要从Eclipse的C / C ++端安装,如下所示:
What installable component provides 'launch groups' in Eclipse?
在启动组中,第一个作业应该运行maven任务来处理测试资源,下一个作业启动服务器,然后最后一个作业执行junit测试。
答案 2 :(得分:0)
我不知道你想要使用什么数据库,但是对于单元测试来说,它可以方便地使用内存数据库,也可能是嵌入式servlet容器。也许你可以使用像http://arquillian.org/
这样的东西答案 3 :(得分:-3)
JUnit框架应主要用于单元测试而不是集成测试。 QA团队可以进行集成测试。
如果您有很多集成管道代码,那么您应该考虑模拟外部元素,例如数据库和Web服务调用。
主要集中在测试您编写的代码上。添加负面,正面和异常的测试场景。这将使您的代码比完全集成测试更具可信度。
对于数据库我建议使用DBUNIT> http://www.dbunit.org/这是测试数据库管道的绝佳工具。此工具可以从数据库创建XML模式,您可以将数据保存为xml复制数据库。 这将避免更改JUnit测试的任何数据集。