运行 测试由 Bndtools/Bnd 中的名称模式标识

Run tests identified by a name pattern in Bndtools/Bnd

在包含集成测试的包中,我希望所有名称以 Test 结尾的 类 都被视为测试并在启动 OSGi Framework JUnit 测试时执行.

bnd.bnd 文件中的 Test-Classes 指令似乎是指定它的正确位置。但是,classes 宏在 http://bnd.bndtools.org/macros/classes.html 的文档很少。

因此,我的问题是如何形成指令以包含所有 类 以 Test 结尾的

Test-Cases: ${classes that end with Test}

到目前为止,我的实验表明,这条指令可以解决问题:

Test-Cases: ${classes;CONCRETE;NAMED;*Test}

CONCRETE 确保只考虑具体类型,例如排除抽象类型。并且 NAMED 后跟模式 *Test 仅考虑名称以 Test.

结尾的那些 类

由于 JUnit 4 只能执行 public 测试,另一个需要考虑的约束可能是 PUBLIC。例如:

Test-Cases: ${classes;CONCRETE;PUBLIC;NAMED;*Test}

另一方面,您可能更愿意让 JUnit 使非 public 测试失败,而不是默默地忽略它们(如果指定了 PUBLIC)。