泉州建设网站公司哪家好,建电子商务网站注意事项,网站费用多少,厦门网站建设团队OSGi Testsuite是一个JUnit测试运行程序 #xff0c;它动态地收集要执行的测试类。 它已经由我的同伴Rdiger大约一年前出版#xff0c;并且已经在某些项目中证明是有用的。 但是对于gonsole#xff0c;我们必须使用一个难看的补丁#xff0c;因为1.0版仅支持.*Test后缀匹配… OSGi Testsuite是一个JUnit测试运行程序 它动态地收集要执行的测试类。 它已经由我的同伴Rüdiger大约一年前出版并且已经在某些项目中证明是有用的。 但是对于gonsole我们必须使用一个难看的补丁因为1.0版仅支持.*Test后缀匹配测试类名称。 我通过引入注解ClassnameFilters 使用正则表达式匹配任意名称模式解决了1.1版的问题。 这篇文章简短地解释了它是如何工作的。 OSGi测试套件 OSGi Testsuite提供了一个JUnit测试运行程序BundleTestSuite 可用于运行给定数量的OSGi捆绑包内的所有测试。 要使用它请使用RunWith(BundleTestSuite.class)注释一个类并使用TestBundles({bundle.1, ...})指定捆绑。 运行时JUnit将处理列出的捆绑软件中的所有类其名称以Test结尾。 RunWith( BundleTestSuite.class )
TestBundles( { org.example.bundle1, org.example.bundle2 } )
public class MasterTestSuite {} 不幸的是Test postfix的固定结果显得过于僵化。 在gonsole中我们对单元测试和集成测试使用不同的后缀。 而且我们不希望在OSGi Testsuite运行中执行单元测试。 但是这种区别在1.0版中是不可能的。 类名过滤器 受ClasspathSuite 在纯JUnit测试上与OSGi Testsuite的工作原理类似的启发我引入了一个注解ClassnameFilters 。 这允许基于正则表达式定义过滤器以匹配任意测试名称模式 RunWith( BundleTestSuite.class )
TestBundles( { org.example.bundle1, org.example.bundle2 } )
ClassnameFilters( { .*ITest } )
public class IntegrationTestSuite {} 处理该示例将包括列出的捆绑软件中所有类的测试这些测试的名称以ITest后缀结尾。 请注意带有简单Test后缀的类将不被处理。 此外可以使用前导!指定排除模式 RunWith( BundleTestSuite.class )
TestBundles( { org.example.bundle1, org.example.bundle2 } )
ClassnameFilters( { .*ITest, !.*FooITest } )
public class IntegrationTestSuite {} 给定的示例现在将执行列出的捆绑软件中所有类的测试这些类的名称以ITest后缀结尾但名称以FooITest结尾的类除外。 很简单不是吗 结论 OSGi Testsuite的过滤器机制得到了增强可以动态执行与任意名称模式匹配的测试类。 使用ClassnameFilters批注和正则表达式可以轻松完成过滤器规范。 该代码可在Eclipse Public License下获得并托管在GitHub上 https://github.com/rherrmann/osgi-testsuite 可以从此p2存储库获得最新的稳定版本 http://rherrmann.github.io/osgi-testsuite/repository 翻译自: https://www.javacodegeeks.com/2014/11/osgi-testsuite-introducing-classname-filters.html