1. 程式人生 > >測試工程如何引入War包 並使用Clover統計覆蓋率

測試工程如何引入War包 並使用Clover統計覆蓋率

外掛:maven-war-plugin

一. 測試工程的依賴:

對於Maven工程,在web工程的pom檔案中新增外掛:

            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1-beta-1</version>
                <configuration>
                    <attachClasses>true</attachClasses>
                </configuration>
            </plugin>

這樣在web工程打包的時候會生成一個 -classes.jar 的包,這個jar包就可以在測試工程中使用。

但是如果想在測試工程中依賴這個jar包,應該這麼寫:

        <dependency>
            <groupId>com.taobao.tae</groupId>
            <artifactId>taeappcenter-web</artifactId>
            <version>1.0.4-SNAPSHOT</version>
            <classifier>classes</classifier> 
        </dependency>
使用 classifier 標籤屬性值:classes 進行限定。


二. 在我們的持續整合環境中(Jenkins)中如何也統計到web工程的程式碼覆蓋率呢 ?

原因: 對於web工程預設生成的是war包,我們使用maven-war-plugin外掛,能夠生成的jar包是帶 -classes 標籤的jar包,由於Clover是基於原始碼打樁的,Clover在統計覆蓋率的時候預設是找web工程下的pom中定義的打包格式進行插樁打包的,而生成的帶 -classes 標籤的jar包 是沒有被打樁的,所以在我們的測試程式碼中就無法測試到web工程的覆蓋率情況。

解決方法:

在jenkins中配置shell命令: 修改web中的pom檔案中的打包方式:把war改成jar,然後修改qatest檔案下的pom檔案把web依賴的classify屬性去掉。


思考:

  其實在我們的web工程裡面不應該包含太多的業務邏輯,大部分只是給出展現,具體的業務邏輯放在biz或其他module中,當然對於具有大量並且複雜的頁面的web工程另當別論了。