本申請涉及計算機,尤其涉及一種單元測試方法、裝置、電子設(shè)備及計算機可讀介質(zhì)。
背景技術(shù):
1、目前,在編碼研發(fā)的過程當(dāng)中,隨著項目的代碼數(shù)量逐漸增加,參與人數(shù)越來越多,難以確保所編寫的代碼質(zhì)量,難以快速準(zhǔn)確地定位代碼中的問題,這不僅會增加開發(fā)周期,還可能引發(fā)質(zhì)量問題。代碼測試的效率和可靠性低。
技術(shù)實現(xiàn)思路
1、有鑒于此,本申請實施例提供一種單元測試方法、裝置、電子設(shè)備及計算機可讀介質(zhì),能夠解決現(xiàn)有的代碼測試的效率和可靠性低的問題。
2、為實現(xiàn)上述目的,根據(jù)本申請實施例的一個方面,提供了一種單元測試方法,包括:接收單元測試請求,確定對應(yīng)的目標(biāo)分支;獲取目標(biāo)分支與主分支之間的差異文件名集合,根據(jù)差異文件名集合,確定差異文件集合;獲取差異文件集合中的每個二進(jìn)制可執(zhí)行文件的方法,生成方法對應(yīng)的簽名信息摘要;基于簽名信息摘要,確定差異方法集合;對差異方法集合中的各個差異方法插入探針代碼,并將收集到的字節(jié)碼輸出至目標(biāo)文件。
3、可選地,獲取目標(biāo)分支與主分支之間的差異文件名集合,包括:分別獲取目標(biāo)分支的第一代碼和主分支上與目標(biāo)分支對應(yīng)的節(jié)點所存儲的第二代碼:獲取第一代碼和第二代碼之間的差異文件名,進(jìn)而得到差異文件名集合。
4、可選地,根據(jù)差異文件名集合,確定差異文件集合,包括:將主分支上與目標(biāo)分支對應(yīng)的節(jié)點所存儲的所有二進(jìn)制可執(zhí)行文件復(fù)制到與目標(biāo)項目同級的臨時目錄,將目標(biāo)分支對應(yīng)的所有二進(jìn)制可執(zhí)行文件復(fù)制到臨時目錄;從臨時目錄中刪除不在差異文件名集合中的二進(jìn)制可執(zhí)行文件,以得到差異文件集合。
5、可選地,生成方法對應(yīng)的簽名信息摘要,包括:基于信息摘要算法計算方法對應(yīng)的基本信息和相關(guān)指令的簽名信息摘要。
6、可選地,基于簽名信息摘要,確定差異方法集合,包括:獲取源代碼中相應(yīng)的方法對應(yīng)的源代碼簽名信息摘要;將源代碼簽名信息摘要與簽名信息摘要進(jìn)行比較,進(jìn)而將與源代碼簽名信息摘要不一致的簽名信息摘要對應(yīng)的方法進(jìn)行匯總,以得到差異方法集合。
7、可選地,方法還包括:響應(yīng)于單元測試結(jié)束,獲取單元測試請求對應(yīng)的項目和對應(yīng)的版本的所有的編譯文件;調(diào)用代碼覆蓋率工具,以對編譯文件中的布爾數(shù)組進(jìn)行合并處理,響應(yīng)于合并處理失敗,丟棄所對應(yīng)的類的舊的布爾數(shù)組,進(jìn)而基于預(yù)設(shè)覆蓋率對應(yīng)的標(biāo)記方式生成輸出報告。
8、另外,本申請還提供了一種單元測試裝置,包括:接收單元,被配置成接收單元測試請求,確定對應(yīng)的目標(biāo)分支;差異文件集合確定單元,被配置成獲取目標(biāo)分支與主分支之間的差異文件名集合,根據(jù)差異文件名集合,確定差異文件集合;簽名信息摘要生成單元,被配置成獲取差異文件集合中的每個二進(jìn)制可執(zhí)行文件的方法,生成方法對應(yīng)的簽名信息摘要;差異方法集合確定單元,被配置成基于簽名信息摘要,確定差異方法集合;輸出單元,被配置成對差異方法集合中的各個差異方法插入探針代碼,并將收集到的字節(jié)碼輸出至目標(biāo)文件。
9、可選地,差異文件集合確定單元進(jìn)一步被配置成:分別獲取目標(biāo)分支的第一代碼和主分支上與目標(biāo)分支對應(yīng)的節(jié)點所存儲的第二代碼:獲取第一代碼和第二代碼之間的差異文件名,進(jìn)而得到差異文件名集合。
10、可選地,差異文件集合確定單元進(jìn)一步被配置成:將主分支上與目標(biāo)分支對應(yīng)的節(jié)點所存儲的所有二進(jìn)制可執(zhí)行文件復(fù)制到與目標(biāo)項目同級的臨時目錄,將目標(biāo)分支對應(yīng)的所有二進(jìn)制可執(zhí)行文件復(fù)制到臨時目錄;從臨時目錄中刪除不在差異文件名集合中的二進(jìn)制可執(zhí)行文件,以得到差異文件集合。
11、可選地,簽名信息摘要生成單元進(jìn)一步被配置成:基于信息摘要算法計算方法對應(yīng)的基本信息和相關(guān)指令的簽名信息摘要。
12、可選地,差異方法集合確定單元進(jìn)一步被配置成:獲取源代碼中相應(yīng)的方法對應(yīng)的源代碼簽名信息摘要;將源代碼簽名信息摘要與簽名信息摘要進(jìn)行比較,進(jìn)而將與源代碼簽名信息摘要不一致的簽名信息摘要對應(yīng)的方法進(jìn)行匯總,以得到差異方法集合。
13、可選地,裝置還包括報告輸出單元,被配置成:響應(yīng)于單元測試結(jié)束,獲取單元測試請求對應(yīng)的項目和對應(yīng)的版本的所有的編譯文件;調(diào)用代碼覆蓋率工具,以對編譯文件中的布爾數(shù)組進(jìn)行合并處理,響應(yīng)于合并處理失敗,丟棄所對應(yīng)的類的舊的布爾數(shù)組,進(jìn)而基于預(yù)設(shè)覆蓋率對應(yīng)的標(biāo)記方式生成輸出報告。
14、另外,本申請還提供了一種單元測試電子設(shè)備,包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,當(dāng)一個或多個程序被一個或多個處理器執(zhí)行,使得一個或多個處理器實現(xiàn)如上述的單元測試方法。
15、另外,本申請還提供了一種計算機可讀介質(zhì),其上存儲有計算機程序,程序被處理器執(zhí)行時實現(xiàn)如上述的單元測試方法。
16、為實現(xiàn)上述目的,根據(jù)本申請實施例的又一個方面,提供了一種計算機程序產(chǎn)品。
17、本申請實施例的一種計算機程序產(chǎn)品,包括計算機程序,程序被處理器執(zhí)行時實現(xiàn)本申請實施例提供的單元測試方法。
18、上述發(fā)明中的一個實施例具有如下優(yōu)點或有益效果:本申請通過接收單元測試請求,確定對應(yīng)的目標(biāo)分支;獲取目標(biāo)分支與主分支之間的差異文件名集合,根據(jù)差異文件名集合,確定差異文件集合;獲取差異文件集合中的每個二進(jìn)制可執(zhí)行文件的方法,生成方法對應(yīng)的簽名信息摘要;基于簽名信息摘要,確定差異方法集合;對差異方法集合中的各個差異方法插入探針代碼,并將收集到的字節(jié)碼輸出至目標(biāo)文件。提高代碼測試的效率和可靠性。
19、上述的非慣用的可選方式所具有的進(jìn)一步效果將在下文中結(jié)合具體實施方式加以說明。
1.一種單元測試方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取所述目標(biāo)分支與主分支之間的差異文件名集合,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述差異文件名集合,確定差異文件集合,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述生成所述方法對應(yīng)的簽名信息摘要,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述簽名信息摘要,確定差異方法集合,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
7.一種單元測試裝置,其特征在于,包括:
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述差異文件集合確定單元進(jìn)一步被配置成:
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述差異文件集合確定單元進(jìn)一步被配置成:
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述簽名信息摘要生成單元進(jìn)一步被配置成:
11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述差異方法集合確定單元進(jìn)一步被配置成:
12.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括報告輸出單元,被配置成:
13.一種單元測試電子設(shè)備,其特征在于,包括:
14.一種計算機可讀介質(zhì),其上存儲有計算機程序,其特征在于,所述程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-6中任一項所述的方法。
15.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-6中任一項所述的方法。