① 如何使用emma統計代碼執行覆蓋率
使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目錄, 將emma.jar 與 emma_ant.jar 放入 2. 復制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh 修改啟動語句。
使用 emma 2.1 (emma-stable-2.1.5320-lib)
1. 新建 /home/q/java/emmalib 目錄, 將emma.jar 與 emma_ant.jar 放入
2. 復制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh
修改啟動語句
nohup java -Xmx1800M -Xms800m -Xbootclasspath/p:/home/q/java/emmalib/emma.jar -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -XX:+AggressiveOpts -XX:+UseParallelGC -server -classpath "$jarFile" com.qunar.common.mobileArc.MobileServer conf/TaLog.property conf/TripServer.property >> $LOG_HOME/error.log 2>&1 &
復制 /server/bin/mobileserver/stopServer.sh 到 stopServer_emma.sh
添加覆蓋率導出命令
插入 emma 統計代碼
使用root賬號
1. 備份mobileserver.jar
cp /server/TripAssistant/mobile-server.jar $MOB_JAR_BAK/mobile-server.jar.{$timestamp}
2. 執行插入命令
java -cp /home/q/java/emmalib/emma.jar emma instr -m overwrite -cp mobile-server.jar -out coverage.em
輸出如下:
EMMA: processing instrumentation path ...
EMMA: instrumentation path processed in 3117 ms
EMMA: [1000 class(es) instrumented, 126 resource(s) copied]
EMMA: metadata merged into [/server/TripAssistant/coverage.em]
3. 運行mobileserver runServer_emma.sh
sudo sh /server/bin/mobileserver/stopServer.sh && sudo sh /server/bin/mobileserver/runServer_emma.sh
在 /server/mobileserverlog/error.log中可見:
EMMA: collecting runtime coverage data ...
EMMA: runtime controller started on port [47653]
emma control 進程已啟動
[[email protected] /server/mobileserverlog]# netstat -na | grep 47653
tcp 0 0 0.0.0.0:47653 0.0.0.0:* LISTEN 20926/java
4. 執行 覆蓋率文件導出命令
java -cp /home/q/java/emmalib/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec
可見輸出:
EMMA: processing control command sequence ...
EMMA: executing [coverage.get (coverage.ec,true,true)] ...
EMMA: coverage.get: local of coverage data merged into [/server/TripAssistant/coverage.ec]
EMMA: coverage.get: command completed in 79 ms
EMMA: control command sequence complete
並且當前目錄生成文件 coverage.ec
5. 生成報告
java -cp /home/q/java/emmalib/emma.jar emma report -r html -in coverage.em,coverage.ec
指定源代碼生產覆蓋率報告(需先上傳源碼)
java -cp /home/q/java/emmalib/emma.jar emma report -r html -in /server/TripAssistant/coverage.em,/server/TripAssistant/coverage.ec -Dreport.html.out.file=mycoverage/coverage.html -sp /home/liang.zhou/mob_code_dir/mobs_trunk/src/main/java
emma 方式啟動 mobserver
==================================
1. 判斷mobserver.jar size, 大於5M 為已插入過, 小於5M為未插入(需要執行插入)
2. 執行插入
3. 啟動
4. 檢查啟動狀態
47653 埠打開
mobileserver 進程打開
emma 方式停止 mobserver
==================================
1. 檢查47653埠打開狀態, 檢查coverage.em是否存在
2. 導出覆蓋率文件 coverage.ec, 備份coverage.em (加上時間戳)
3. 導出覆蓋率HTML report (加上對應時間戳)
4. kill mobserver 進程
ls -lt mobile-server.jar
判斷 $? == 0
判斷mobile-server.jar size是否大於 5M
#!/bin/bash
function stop_mob_server(){
#!/bin/bash
function stop_mob_server(){
pid=`ps aux | grep MobileServer | grep -v grep | awk '
Unknown macro: {print $2}
'`
` kill -9 $
Unknown macro: {pid}
`
sleep 1
echo "Stop mobileserver success."
}
#判斷 emma ctl 是否啟動
port_check_result=`netstat -na | grep 47653 | awk '
Unknown macro: {print $1}
'`
if [ -z $
Unknown macro: {port_check_result}
]; then
echo "Emma ctl port 47653 is not LISTEN. Coverage.ec export operation aborted."
else
#emma ctl 為啟動狀態,導出 coverage.ec, 並備份至 /home/q/mobsrv_cov
if []
fi
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
② 如何使用emma統計代碼執行覆蓋率
使用emma統計代碼執行覆蓋率:
使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目錄, 將emma.jar 與 emma_ant.jar 放入 2. 復制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh 修改啟動語句。
使用 emma 2.1 (emma-stable-2.1.5320-lib)
1. 新建 /home/q/java/emmalib 目錄, 將emma.jar 與 emma_ant.jar 放入
2. 復制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh
修改啟動語句
nohup java -Xmx1800M -Xms800m -Xbootclasspath/p:/home/q/java/emmalib/emma.jar -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -XX:+AggressiveOpts -XX:+UseParallelGC -server -classpath "$jarFile" com.qunar.common.mobileArc.MobileServer conf/TaLog.property conf/TripServer.property >> $LOG_HOME/error.log 2>&1 &
復制 /server/bin/mobileserver/stopServer.sh 到 stopServer_emma.sh
添加覆蓋率導出命令
插入 emma 統計代碼
使用root賬號
1. 備份mobileserver.jar
cp /server/TripAssistant/mobile-server.jar $MOB_JAR_BAK/mobile-server.jar.{$timestamp}
2. 執行插入命令
java -cp /home/q/java/emmalib/emma.jar emma instr -m overwrite -cp mobile-server.jar -out coverage.em
輸出如下:
EMMA: processing instrumentation path ...
EMMA: instrumentation path processed in 3117 ms
EMMA: [1000 class(es) instrumented, 126 resource(s) copied]
EMMA: metadata merged into [/server/TripAssistant/coverage.em]
3. 運行mobileserver runServer_emma.sh
sudo sh /server/bin/mobileserver/stopServer.sh && sudo sh /server/bin/mobileserver/runServer_emma.sh
在 /server/mobileserverlog/error.log中可見:
EMMA: collecting runtime coverage data ...
EMMA: runtime controller started on port [47653]
emma control 進程已啟動
[[email protected] /server/mobileserverlog]# netstat -na | grep 47653
tcp 0 0 0.0.0.0:47653 0.0.0.0:* LISTEN 20926/java
4. 執行 覆蓋率文件導出命令
java -cp /home/q/java/emmalib/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec
可見輸出:
EMMA: processing control command sequence ...
EMMA: executing [coverage.get (coverage.ec,true,true)] ...
EMMA: coverage.get: local of coverage data merged into [/server/TripAssistant/coverage.ec]
EMMA: coverage.get: command completed in 79 ms
EMMA: control command sequence complete
並且當前目錄生成文件 coverage.ec
5. 生成報告
java -cp /home/q/java/emmalib/emma.jar emma report -r html -in coverage.em,coverage.ec
指定源代碼生產覆蓋率報告(需先上傳源碼)
java -cp /home/q/java/emmalib/emma.jar emma report -r html -in /server/TripAssistant/coverage.em,/server/TripAssistant/coverage.ec -Dreport.html.out.file=mycoverage/coverage.html -sp /home/liang.zhou/mob_code_dir/mobs_trunk/src/main/java
emma 方式啟動 mobserver
==================================
1. 判斷mobserver.jar size, 大於5M 為已插入過, 小於5M為未插入(需要執行插入)
2. 執行插入
3. 啟動
4. 檢查啟動狀態
47653 埠打開
mobileserver 進程打開
emma 方式停止 mobserver
==================================
1. 檢查47653埠打開狀態, 檢查coverage.em是否存在
2. 導出覆蓋率文件 coverage.ec, 備份coverage.em (加上時間戳)
3. 導出覆蓋率HTML report (加上對應時間戳)
4. kill mobserver 進程
ls -lt mobile-server.jar
判斷 $? == 0
判斷mobile-server.jar size是否大於 5M
#!/bin/bash
function stop_mob_server(){
#!/bin/bash
function stop_mob_server(){
pid=`ps aux | grep MobileServer | grep -v grep | awk '
Unknown macro: {print $2}
'`
` kill -9 $
Unknown macro: {pid}
`
sleep 1
echo "Stop mobileserver success."
}
#判斷 emma ctl 是否啟動
port_check_result=`netstat -na | grep 47653 | awk '
Unknown macro: {print $1}
'`
if [ -z $
Unknown macro: {port_check_result}
]; then
echo "Emma ctl port 47653 is not LISTEN. Coverage.ec export operation aborted."
else
#emma ctl 為啟動狀態,導出 coverage.ec, 並備份至 /home/q/mobsrv_cov
if []
fi
③ Warning:you are installing software that contains unsigned content...
安裝的時候,把「」這個勾去掉。
④ Emma怎麼讀
emma: 英[ˈemə] ; 美[ˈɛmə] 。EMMA 是一個用於檢測和報告 JAVA 代碼覆蓋率的開源工具。它不但能很好的用於小型項目,很方便得得出覆蓋率報告,而且適用於大型企業級別的項目。 EMMA 有許多優點,首先你能免費得到它,並把它用於自己項目的開發。
它支持許多種級別的覆蓋率指標:包,類,方法,語句塊(basic block)和行,特別是它能測出某一行是否只是被部分覆蓋,如條件語句短路的情況。
(4)emmajava擴展閱讀
On the fly 模式比較方便,缺點也比較明顯,如它不能為被 boot class loader 載入的類生成覆蓋率報告,也不能為像 J2EE 容器那種自己有獨特 class loader 的類生成覆蓋率報告。這時,我們能求助於 Offline 模式。EMMA 也支持兩種運行方式:Command line 和 Ant。
命令行一般和 On the fly 模式一起適用,對於簡單的項目能夠快速產生覆蓋率報告。通過 Ant task 來運行 EMMA 的話,特別適用於大型的項目。
⑤ 跪求在線觀看人工智慧:滅絕危機百度雲高清資源
《人工智慧:滅絕危機》網路網盤高清資源免費在線觀看;
鏈接: https://pan..com/s/1gCxJAVaJN024jDrDKL5QnA
《人工智慧:滅絕危機》是FreddieHutton-Mills執導的科幻電影,由EmmaOsei-Lah,JustifiedPrince,Genesis等人參加演出。
該片講述末日災變之後,倖存的人類試圖製造人工智慧機器人來挽救人類的滅絕的故事。
⑥ Java單元測試
你的理解是正確的。 通常針對一個方法會寫幾組這樣的 帶入值,復雜的方法可能更多。實際使用當中,一個方法的運行會有很多依賴關系 ,不如 需要上下文環境,需要 HTTP Requst ,Response ,資料庫連接等。 如果自己寫的話太復雜,所以就有 很多插件來幫忙解決外部問題。
Junit 是JAVA單元測試使用最多的插件。其他的也還有很多,基本和 Junit的思想是一樣的。
請採納答案,支持我一下。
⑦ java 單元測試時兩個測試單元互相調用request共享嗎
java 單元測試時兩個測試單元互相調用request共享
單元測試是編寫測試代碼,用來檢測特定的、明確的、細顆粒的功能。單元測試並不一定保證程序功能是正確的,更不保證整體業務是准備的。
單元測試不僅僅用來保證當前代碼的正確性,更重要的是用來保證代碼修復、改進或重構之後的正確性。
一般來說,單元測試任務包括
介面功能測試:用來保證介面功能的正確性。
局部數據結構測試(不常用):用來保證介面中的數據結構是正確的
比如變數有無初始值
變數是否溢出
邊界條件測試
比如對於Math.sqrt,給出n^2-1,和n^2+1的邊界
空集合
對集合的大小應用「數值變數」的邊界
調整次序:升序、降序
引用「字元變數」的邊界
空字元串
對字元串長度應用「數值變數」的邊界
主要邊界:最小值,最大值,無窮大(對於DOUBLE等)
溢出邊界(期望異常或拒絕服務):最小值-1,最大值+1
臨近邊界:最小值+1,最大值-1
變數沒有賦值(即為NULL)
變數是數值(或字元)
變數是字元串
變數是集合
變數有規律
所有獨立執行通路測試:保證每一條代碼,每個分支都經過測試
Cobertura:語句覆蓋
Emma: Eclipse插件Eclemma
語句覆蓋:保證每一個語句都執行到了
判定覆蓋(分支覆蓋):保證每一個分支都執行到
條件覆蓋:保證每一個條件都覆蓋到true和false(即if、while中的條件語句)
路徑覆蓋:保證每一個路徑都覆蓋到
代碼覆蓋率
相關軟體
各條錯誤處理通路測試:保證每一個異常都經過測試
⑧ java web怎麼用emma進行代碼覆蓋率測試
使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目錄, 將emma.jar 與 emma_ant.jar 放入 2. 復制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh 修改啟動語句。
使用 emma 2.1 (emma-stable-2.1.5320-lib)
1. 新建 /home/q/java/emmalib 目錄, 將emma.jar 與 emma_ant.jar 放入
2. 復制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh
修改啟動語句
nohup java -Xmx1800M -Xms800m -Xbootclasspath/p:/home/q/java/emmalib/emma.jar -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -XX:+AggressiveOpts -XX:+UseParallelGC -server -classpath "$jarFile" com.qunar.common.mobileArc.MobileServer conf/TaLog.property conf/TripServer.property >> $LOG_HOME/error.log 2>&1 &
復制 /server/bin/mobileserver/stopServer.sh 到 stopServer_emma.sh
添加覆蓋率導出命令
插入 emma 統計代碼
使用root賬號
1. 備份mobileserver.jar
cp /server/TripAssistant/mobile-server.jar $MOB_JAR_BAK/mobile-server.jar.{$timestamp}
2. 執行插入命令
java -cp /home/q/java/emmalib/emma.jar emma instr -m overwrite -cp mobile-server.jar -out coverage.em
輸出如下:
EMMA: processing instrumentation path ...
EMMA: instrumentation path processed in 3117 ms
EMMA: [1000 class(es) instrumented, 126 resource(s) copied]
EMMA: metadata merged into [/server/TripAssistant/coverage.em]
3. 運行mobileserver runServer_emma.sh
sudo sh /server/bin/mobileserver/stopServer.sh && sudo sh /server/bin/mobileserver/runServer_emma.sh
在 /server/mobileserverlog/error.log中可見:
EMMA: collecting runtime coverage data ...
EMMA: runtime controller started on port [47653]
emma control 進程已啟動
[[email protected] /server/mobileserverlog]# netstat -na | grep 47653
tcp 0 0 0.0.0.0:47653 0.0.0.0:* LISTEN 20926/java
4. 執行 覆蓋率文件導出命令
java -cp /home/q/java/emmalib/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec
可見輸出:
EMMA: processing control command sequence ...
EMMA: executing [coverage.get (coverage.ec,true,true)] ...
EMMA: coverage.get: local of coverage data merged into [/server/TripAssistant/coverage.ec]
EMMA: coverage.get: command completed in 79 ms
EMMA: control command sequence complete
並且當前目錄生成文件 coverage.ec
5. 生成報告
java -cp /home/q/java/emmalib/emma.jar emma report -r html -in coverage.em,coverage.ec
指定源代碼生產覆蓋率報告(需先上傳源碼)
java -cp /home/q/java/emmalib/emma.jar emma report -r html -in /server/TripAssistant/coverage.em,/server/TripAssistant/coverage.ec -Dreport.html.out.file=mycoverage/coverage.html -sp /home/liang.zhou/mob_code_dir/mobs_trunk/src/main/java
emma 方式啟動 mobserver
==================================
1. 判斷mobserver.jar size, 大於5M 為已插入過, 小於5M為未插入(需要執行插入)
2. 執行插入
3. 啟動
4. 檢查啟動狀態
47653 埠打開
mobileserver 進程打開
emma 方式停止 mobserver
==================================
1. 檢查47653埠打開狀態, 檢查coverage.em是否存在
2. 導出覆蓋率文件 coverage.ec, 備份coverage.em (加上時間戳)
3. 導出覆蓋率HTML report (加上對應時間戳)
4. kill mobserver 進程
ls -lt mobile-server.jar
判斷 $? == 0
判斷mobile-server.jar size是否大於 5M
#!/bin/bash
function stop_mob_server(){
#!/bin/bash
function stop_mob_server(){
pid=`ps aux | grep MobileServer | grep -v grep | awk '
Unknown macro: {print $2}
'`
` kill -9 $
Unknown macro: {pid}
`
sleep 1
echo "Stop mobileserver success."
}
#判斷 emma ctl 是否啟動
port_check_result=`netstat -na | grep 47653 | awk '
Unknown macro: {print $1}
'`
if [ -z $
Unknown macro: {port_check_result}
]; then
echo "Emma ctl port 47653 is not LISTEN. Coverage.ec export operation aborted."
else
#emma ctl 為啟動狀態,導出 coverage.ec, 並備份至 /home/q/mobsrv_cov
if []
fi
⑨ java代碼覆蓋率測試現在用什麼工具
你好,代碼覆蓋率測試,你可以試試Emma和Jacoco,eclipse中也有eclemma插件,這兩種都是比較流行的工具
希望我的解答可以幫助你