ABAP class单元测试的执行入口,CLASS_SETUP, 是硬编码在单元测试框架实现CL_AUNIT_TEST_CLASS里的。 java
待执行的单元测试方法经过CL_AUNIT_TEST_CLASS~get_Test_Methods返回到一个内表里,而后LOOP该内表,依次执行。
apache
最经常使用的Maven plugin是maven-surefire-plugin,能够方便地单独触发单元测试,或者把单元测试的执行集成为Maven build的一个子步骤。框架
下图代表在执行mvn clean install时,执行了srv/test/java/com/sap/testcase下面的两个test case:
那么maven-surefire-plugin是如何知道哪些.java文件里面的测试方法须要执行呢? 到这个目录下面打开maven-surefire-plugin的实现文件SurefirePlugin.class: .m2\repository\org\apache\maven\plugins\maven-surefire-plugin\2.20\maven-surefire-plugin-2.20\org\apache\maven\plugin\surefiremaven
反编译出来,在getDefaultIncludes里面发现了答案:全部符合后缀Test*.java, Tests.java, TestCase.java结尾的Java文件都做为执行单元测试的候选, Java里单元测试的灵活之处在于能够给同一class里的不一样方法指定不一样的Category:
而后用命令行mvn install加上参数-P SlowTests只执行category为SlowTests的那些方法:
单元测试
关于@Category注解的更多高级用法,参考个人SAP Community 博客: [Run only given sets of your unit test via @Category](https://blogs.sap.com/2016/12/17/run-only-given-sets-of-your-unit-test-via-category/)。测试
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:ui