由于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中的变量创建一个运行程序,以指定应用程序包文件夹,运行程序会自动配置本身。这将具有两个优点:
不幸的是,我所看到的一切都要求注释是静态的。我认为这是由于在执行代码之前读取运行程序的时间所致。因此,我正在查看是否有某种方法无法找到在命令行中添加core
的方法,而该方法又可以填充运行程序。我已经使用surefire插件在代码中设置其他变量,所以我希望可以对注释执行相同的操作。