本發(fā)明涉及軟件自動(dòng)測試領(lǐng)域,具體涉及一種Linux平臺(tái)下可定制的自動(dòng)單元測試方法及系統(tǒng)。
背景技術(shù):
為了控制軟件代碼質(zhì)量,更好的規(guī)避程序錯(cuò)誤的出現(xiàn),一般而言需要在更新軟件功能代碼之前或者之后,對(duì)更新的代碼編寫對(duì)應(yīng)的單元測試用例,每次更新代碼后執(zhí)行單元測試用例,校驗(yàn)軟件是否正確運(yùn)行,從而規(guī)避程序錯(cuò)誤的出現(xiàn)?,F(xiàn)有的做法通常是監(jiān)控到代碼更新后,人工查找對(duì)應(yīng)的單元測試用例并人工開始執(zhí)行單元測試;單元測試結(jié)束后,人工分析測試結(jié)構(gòu)是否全部通過。此方法缺陷在于不能定制單元測試用例,需人工在全部單元測試用例中查找,耗時(shí)耗力;對(duì)于測試結(jié)果缺乏有效的通知機(jī)制,需人工對(duì)測試結(jié)果進(jìn)行分析,找出未通過的單元測試。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種Linux平臺(tái)下可定制的自動(dòng)單元測試方法及系統(tǒng),可自動(dòng)查找單元測試用例與執(zhí)行單元測試。
為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是:一種Linux平臺(tái)下可定制的自動(dòng)單元測試方法,獲取預(yù)先定義的配置文件中的配置信息,所述配置信息包括需要進(jìn)行監(jiān)控的文件或文件夾名稱、相應(yīng)文件或文件夾是否需要進(jìn)行單元測試以及相應(yīng)文件或文件夾各自對(duì)應(yīng)的單元測試用例的映射地址;根據(jù)配置信息獲取需要進(jìn)行監(jiān)控的文件或文件夾列表,實(shí)時(shí)監(jiān)控所述列表中文件或文件夾的變更信息;監(jiān)控到變更信息后,根據(jù)配置信息判斷發(fā)生變更的文件或文件夾是否需要進(jìn)行單元測試,并根據(jù)需要進(jìn)行單元測試的文件或文件夾在配置信息中對(duì)應(yīng)的單元測試用例的映射地址查找并獲取單元測試用例,然后以獲取的單元測試用例執(zhí)行全部發(fā)生變更且需進(jìn)行單元測試的文件或文件夾的單元測試。
在上述技術(shù)方案的基礎(chǔ)上,包括以下步驟:
S1,獲取預(yù)先定義的配置文件中的配置信息;
S2,根據(jù)配置信息獲取需要進(jìn)行監(jiān)控的文件或文件夾列表;
S3,實(shí)時(shí)監(jiān)控所述列表中文件或文件夾的變更信息;
S4,監(jiān)控到變更信息后,根據(jù)配置信息判斷發(fā)生變更的文件或文件夾是否需要進(jìn)行單元測試;若是,進(jìn)入步驟S5;若否,直接進(jìn)入步驟S7;
S5,根據(jù)需要進(jìn)行單元測試的文件或文件夾在配置信息中對(duì)應(yīng)的單元測試用例的映射地址查找并獲取單元測試用例;
S6,以獲取的單元測試用例執(zhí)行全部發(fā)生變更且需進(jìn)行單元測試的文件或文件夾的單元測試;
S7,全部單元測試執(zhí)行完畢,打印結(jié)果,結(jié)束。
在上述技術(shù)方案的基礎(chǔ)上,所述配置文件由開發(fā)人員預(yù)先定義完成。
在上述技術(shù)方案的基礎(chǔ)上,所述配置信息包括需要進(jìn)行監(jiān)控的文件或文件夾名稱、相應(yīng)文件或文件夾是否需要進(jìn)行單元測試以及相應(yīng)文件或文件夾各自對(duì)應(yīng)的單元測試用例的映射地址。
在上述技術(shù)方案的基礎(chǔ)上,所述步驟S7還包括:
S701,全部單元測試執(zhí)行完畢,判斷是否全部文件或文件夾通過單元測試;若否,進(jìn)入步驟S702;若是,直接進(jìn)入步驟S703;
S702,發(fā)送郵件通知開發(fā)人員未通過單元測試的文件或文件夾結(jié)果;
S703,打印結(jié)果。
本發(fā)明還包括一種Linux平臺(tái)下可定制的自動(dòng)單元測試系統(tǒng),包括:實(shí)時(shí)文件監(jiān)控模塊、測試用例查找模塊和單元測試執(zhí)行模塊,其中:
所述實(shí)時(shí)文件監(jiān)控模塊用于根據(jù)預(yù)先定義的配置信息獲取需要進(jìn)行監(jiān)控的文件或文件夾列表;實(shí)時(shí)監(jiān)控所述列表中所述文件或文件夾的變更信息;將變更信息發(fā)送至所述測試用例查找模塊;
所述測試用例查找模塊用于接收到所述實(shí)時(shí)文件監(jiān)控模塊監(jiān)控到變更信息后,根據(jù)配置信息判斷發(fā)生變更的文件或文件夾是否需要進(jìn)行單元測試,并根據(jù)需要進(jìn)行單元測試的文件或文件夾在配置信息對(duì)應(yīng)的單元測試用例的映射地址查找并獲取單元測試用例;
所述單元測試執(zhí)行模塊用于以所述測試用例查找模塊獲取的單元測試用例執(zhí)行全部發(fā)生變更且需進(jìn)行單元測試的文件或文件夾的單元測試。
在上述技術(shù)方案的基礎(chǔ)上,所述配置信息包括需要進(jìn)行監(jiān)控的文件或文件夾名稱、相應(yīng)文件或文件夾是否需要進(jìn)行單元測試以及相應(yīng)文件或文件夾各自對(duì)應(yīng)的單元測試用例的映射地址。
在上述技術(shù)方案的基礎(chǔ)上,自動(dòng)單元測試系統(tǒng)還包括測試結(jié)果上報(bào)模塊,所述測試結(jié)果上報(bào)模塊用于發(fā)送郵件通知開發(fā)人員未通過單元測試的文件或文件夾結(jié)果。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1、整個(gè)單元測試過程無需人工干預(yù),節(jié)省人力成本,實(shí)時(shí)性高。
2、預(yù)先為文件和文件夾定制單元測試用例,根據(jù)配置信息中的映射地址自動(dòng)查找對(duì)應(yīng)的單元測試用例進(jìn)行單元測試。
3、自動(dòng)將未通過的單元測試的文件或文件夾的測試結(jié)果以郵件通知開發(fā)人員,使開發(fā)人員及時(shí)獲悉并修復(fù)代碼中可能存在的問題。
附圖說明
圖1為本發(fā)明實(shí)施例中Linux平臺(tái)下可定制的自動(dòng)單元測試方法的流程示意圖;
圖2為本發(fā)明實(shí)施例中Linux平臺(tái)下可定制的自動(dòng)單元測試方法步驟S7的流程示意圖;
圖3為本發(fā)明實(shí)施例中Linux平臺(tái)下可定制的自動(dòng)單元測試系統(tǒng)的結(jié)構(gòu)示意圖。
圖中:1-實(shí)時(shí)文件監(jiān)控模塊,2-測試用例查找模塊,3-單元測試執(zhí)行模塊,4-測試結(jié)果上報(bào)模塊。
具體實(shí)施方式
以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
參見圖1所示,本發(fā)明實(shí)施例提供一種Linux平臺(tái)下可定制的自動(dòng)單元測試方法一種Linux平臺(tái)下可定制的自動(dòng)單元測試方法,包括:獲取預(yù)先定義的配置文件中的配置信息,配置文件由開發(fā)人員預(yù)先定義完成。配置信息包括需要進(jìn)行監(jiān)控的文件或文件夾名稱、相應(yīng)文件或文件夾是否需要進(jìn)行單元測試以及相應(yīng)文件或文件夾各自對(duì)應(yīng)的單元測試用例的映射地址;根據(jù)配置信息獲取需要進(jìn)行監(jiān)控的文件或文件夾列表,實(shí)時(shí)監(jiān)控列表中文件或文件夾的變更信息;監(jiān)控到變更信息后,根據(jù)配置信息判斷發(fā)生變更的文件或文件夾是否需要進(jìn)行單元測試,并根據(jù)需要進(jìn)行單元測試的文件或文件夾在配置信息中對(duì)應(yīng)的單元測試用例的映射地址查找并獲取單元測試用例,然后以獲取的單元測試用例執(zhí)行全部發(fā)生變更且需進(jìn)行單元測試的文件或文件夾的單元測試。
包括以下步驟:
S1,獲取預(yù)先定義的配置文件中的配置信息;配置信息包括需要進(jìn)行監(jiān)控的文件或文件夾名稱、相應(yīng)文件或文件夾是否需要進(jìn)行單元測試以及相應(yīng)文件或文件夾各自對(duì)應(yīng)的單元測試用例的映射地址。
S2,根據(jù)配置信息獲取需要進(jìn)行監(jiān)控的文件或文件夾列表;
S3,實(shí)時(shí)監(jiān)控列表中文件或文件夾的變更信息;
S4,監(jiān)控到變更信息后,根據(jù)配置信息判斷發(fā)生變更的文件或文件夾是否需要進(jìn)行單元測試;若是,進(jìn)入步驟S5;若否,直接進(jìn)入步驟S7;步驟S4中判斷文件或文件夾是否需要進(jìn)行單元測試的判斷標(biāo)準(zhǔn)為:配置信息中設(shè)置為需要進(jìn)行單元測試的文件或文件夾為是,進(jìn)入步驟S5;配置信息中設(shè)置為無需進(jìn)行單元測試的文件或文件夾為否,直接進(jìn)入步驟S7。
S5,根據(jù)需要進(jìn)行單元測試的文件或文件夾在配置信息中對(duì)應(yīng)的單元測試用例的映射地址查找并獲取單元測試用例;
S6,以獲取的單元測試用例執(zhí)行全部發(fā)生變更且需進(jìn)行單元測試的文件或文件夾的單元測試;
S7,全部單元測試執(zhí)行完畢,打印結(jié)果,結(jié)束。
參見圖2所示,步驟S7還包括:
S701,全部單元測試執(zhí)行完畢,判斷是否全部文件或文件夾通過單元測試;若否,進(jìn)入步驟S702;若是,直接進(jìn)入步驟S703;
S702,發(fā)送郵件通知開發(fā)人員未通過單元測試的文件或文件夾結(jié)果;
S703,打印結(jié)果。
參見圖3所示,本發(fā)明還公開了一種Linux平臺(tái)下可定制的自動(dòng)單元測試系統(tǒng),包括:實(shí)時(shí)文件監(jiān)控模塊1、測試用例查找模塊2和單元測試執(zhí)行模塊3,其中:實(shí)時(shí)文件監(jiān)控模塊1用于根據(jù)預(yù)先定義的配置文件中的配置信息獲取需要進(jìn)行監(jiān)控的文件或文件夾列表;實(shí)時(shí)監(jiān)控列表中文件或文件夾的變更信息;將變更信息發(fā)送至測試用例查找模塊2;測試用例查找模塊2用于接收到實(shí)時(shí)文件監(jiān)控模塊1監(jiān)控到變更信息后,根據(jù)配置信息判斷發(fā)生變更的文件或文件夾是否需要進(jìn)行單元測試,并根據(jù)需要進(jìn)行單元測試的文件或文件夾在配置信息對(duì)應(yīng)的單元測試用例的映射地址查找并獲取單元測試用例;單元測試執(zhí)行模塊3用于以測試用例查找模塊2獲取的單元測試用例執(zhí)行全部發(fā)生變更且需進(jìn)行單元測試的文件或文件夾的單元測試。配置信息包括需要進(jìn)行監(jiān)控的文件或文件夾名稱、文件或文件夾是否需要進(jìn)行單元測試以及文件或文件夾各自對(duì)應(yīng)的單元測試用例的映射地址。自動(dòng)單元測試系統(tǒng)還包括測試結(jié)果上報(bào)模塊4,測試結(jié)果上報(bào)模塊4用于發(fā)送郵件通知開發(fā)人員未通過單元測試的文件或文件夾結(jié)果。
本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。