我有几个测试类,每个测试类有几种测试方法.所有测试在后台使用相同的测试数据库.每个测试类初始化其数据库内容,然后在几种测试方法中测试内容.
当我单独进行每项测试时,它们都会通过.但是当我同时运行多个测试时(使用maven或我的IDE,IntelliJ),不同测试类的方法是交错运行的,例如.第一个类的数据库初始化在第一个类开始之后但在第一个类的所有测试方法都已运行之前运行,因此这些方法将失败(因为数据库已经包含第二个类的数据).
最简单的解决方案是强制TestNG运行器连续运行类(即等待测试类的所有测试方法在运行另一个类的测试方法之前完成).可以这样做吗?
我可以通过在我的套件中将每个类指定为单独的测试来实现这一点,但我不想这样做,因为这意味着每当我添加一个笨拙和错误的测试类时我都必须向套件中添加一些内容. -易于.
简单地要求TestNG不并行化任何东西(例如,将线程数设置为1或禁用并行运行)在这里没有帮助,因为方法仍然以错误的顺序运行(尽管不是同时运行).
一种选择是为每个测试类使用不同的数据库,但我没有看到一种简单的方法(使用JPA和Guice).
我目前没有使用DBUnit,Unitils等; 我不太了解这些工具,但我得到的印象是不能解决我的问题.
我正在使用JPA在每个测试类中初始化数据库(即创建实体对象并对其进行预处理).
Sonatype 要求(非 SNAPSHOT 版本)工件是 GPG 签名的;公共 OpenPGP 密钥应上传到 (MIT) 密钥服务器。
但是任何人都可以通过电子邮件创建任何名称的任何 OpenPGP 密钥并将它们上传到密钥服务器。没有(据我所知;还是我错了?)没有自动机制来将特定的软件项目/库与特定的公钥相关联。当然,如果有人想检查工件的真实性,可以随时向软件作者索取公钥,或者密钥可能已经在某处发布(以将其与特定软件项目相关联的方式);但由于这不能自动完成,几乎没有人会这样做。
因此,整个 OpenPGP 签名过程似乎也非常技术性和耗时,与其说实际上为普通用户提供了很多安全性,不如说是灌输一种虚假的安全感。
那么,难道不应该有一种自动/简化的方式将软件项目与 OpenPGP 密钥相关联,以使整个事情真正安全吗?