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