如何使用JUnit4

时间:2018-12-26 19:59:30

标签: java junit annotations

由于my previous question,我的框架现在有了一个运行器,该运行器将对@Category标签进行计数,因此我可以从测试中清楚地看到代码覆盖率。我的下一步是将跑步者抽象化,因为一个框架可以处理分成包的多个应用。

+---main
+---test
     +---java
         +---com
             +---company
                +---app
                ¦   +---app1
                ¦   ¦   +---common
                ¦   ¦   +---page
                ¦   ¦   +---test
                ¦   +---app2
                ¦       +---common
                ¦       +---page
                ¦       +---test
                +---core
                    +---categories

该框架使用PageObject Model,因此page将包含每个页面的详细信息,common将用于整个应用程序的通用功能,而test将保留名为{{1}的实际测试}

当前,跑步者与每个应用的测试位于同一包中。但是每个代码都是完全相同的代码,除了保存包路径的变量和@SuiteClasses()列出了每个测试类。

*Test.class

我希望在@RunWith(Suite.class) @Suite.SuiteClasses({ FirstTest.class, SecondTest.class, ThirdTest.class, _CleanUpTest.class}) public class _CategoriesCount { private static final String MAIN_TEST_PACKAGES = "com.company.app.app1.test"; private static final String MAIN_CATEGORY_PATH = "com.company.core.categories."; ... } 包中创建一个运行程序,并根据命令行或pom.xml中的变量创建一个运行程序,以指定应用程序包文件夹,运行程序会自动配置本身。这将具有两个优点:

  • 动态读取* Test.class文件,因此,如果创建了一组新的测试,则测试人员不必记住将其添加到运行程序文件中
  • 只有一名赛跑者;修复/增强的地方只有一个,而不是几十个

不幸的是,我所看到的一切都要求注释是静态的。我认为这是由于在执行代码之前读取运行程序的时间所致。因此,我正在查看是否有某种方法无法找到在命令行中添加core的方法,而该方法又可以填充运行程序。我已经使用surefire插件在代码中设置其他变量,所以我希望可以对注释执行相同的操作。

0 个答案:

没有答案