在包含集成测试的捆绑包中,我希望所有名称以Test
结尾的类都被视为测试,并在启动OSGi框架JUnit测试时执行。
bnd.bnd
文件中的Test-Classes
指令似乎是指定此指令的正确位置。但是,http://bnd.bndtools.org/macros/classes.html 处的classes
宏的文档很少。
因此,我的问题是如何形成指令以包括所有以Test
结尾的类
Test-Cases: ${classes that end with Test}
到目前为止,我的实验表明,该指令可以解决问题:
Test-Cases: ${classes;CONCRETE;NAMED;*Test}
CONCRETE
确保只考虑具体类型,例如排除抽象类型。NAMED
后跟的模式*Test
只考虑那些名称以 Test 结尾的类。
由于 JUnit 4 只能执行公共测试,因此要考虑的另一个约束可能是PUBLIC
。例如:
Test-Cases: ${classes;CONCRETE;PUBLIC;NAMED;*Test}
另一方面,您可能更愿意让 JUnit 失败非公开测试,而不是静默忽略它们(如果指定了PUBLIC
)。