第二章 UT單元測試 GTest框架例項

2021-10-22 13:24:53 字數 4034 閱讀 4778

第一章 ut單元測試——googletest通用構建說明

第二章 ut單元測試——gtest框架例項總結

本文使用linux環境。(後續補充)

example.cpp(示例):

#include

intmain()

cmakelists.txt.in:

cmake_minimum_required(version 2.8.12)

project(googletest-download none)

include(externalproject)

externalproject_add(googletest

git_repository

git_tag master

source_dir "$/googletest-src"

binary_dir "$/googletest-build"

configure_command ""

build_command ""

install_command ""

test_command ""

)

cmakelists.txt:

cmake_minimum_required(version 3.16)

project(googletestexpl)

# download and unpack googletest at configure time

configure_file(cmakelists.txt.in googletest-download/cmakelists.txt)

execute_process(command $ -g "$" .

result_variable result

working_directory $/googletest-download )

if(result)

message(fatal_error "cmake step for googletest failed: $")

endif()

execute_process(command $ --build .

result_variable result

working_directory $/googletest-download )

if(result)

message(fatal_error "build step for googletest failed: $")

endif()

# prevent overriding the parent project's compiler/linker

# settings on windows

set(gtest_force_shared_crt on cache bool "" force)

# add googletest directly to our build. this defines

# the gtest and gtest_main targets.

add_subdirectory($/googletest-src

$/googletest-build

exclude_from_all)

# now simply link against gtest or gtest_main as needed. eg

add_executable(example example.cpp)

target_link_libraries(example gtest_main)

add_test(name example_test command example)

# batch compile samples

file(glob_recurse utfiles $ samples/*_unittest.cc)

file(glob_recurse srcfiles $ samples/*[0-9].cc)

list(length utfiles utfileslen)

message(status "utfileslen=$")

list(length srcfiles srcfileslen)

message(status "srcfileslen=$")

# get all srcs

foreach(srcfile in lists srcfiles)

file(relative_path srcfilename $/samples $)

endforeach(srcfile in lists srcfiles)

message(status "srcfilenames=$")

# compile utfile with srcs

foreach(utfile in lists utfiles)

file(relative_path utfilename $/samples $)

list(find utfiles $ i)

# get filename without extension

get_filename_component(targetname $ name_we)

add_executable($ $ $)

target_link_libraries ($ gtest_main)

add_test(name $_test command $)

message(status "recipe $: test=$_test, target=$, ut=$, src=$, link=gtest_main")

endforeach(utfile in lists utfiles)

setup.sh:

mkdir build

cd build

cmake ..

make -j4

# test samples

../test_samples.sh

# test example

../test_example.sh

test_samples.sh:

# get this script path

curpath=

$(dirname

$(readlink -f "$0"))

echo

"entering build..."

cd$curpath/build

pwd# execute sample programs

forfilein`

ls -dv sample[0-9]*`

doecho

"testing $file..."

./$file

done

test_example.sh:

# get this script path

curpath=

$(dirname

$(readlink -f "$0"))

echo

"entering build..."

cd$curpath/build

pwd# execute sample programs

forfilein`

ls -dv example`

doecho

"testing $file..."

./$file

done

readme.md:

a ****** framework implementation of googletest.

linux command:

1. chmod +x setup.sh test_samples.sh test_example.sh

2. ./setup

測試結果待補充。

以上就是今天要講的內容,本文僅僅簡單介紹了gtest框架的使用,而gtest框架提供了大量能使我們快速便捷地模擬和測試的工具和方法。

慕課軟體質量保證與測試 第二章 單元測試

3 下一章 1單選 1分 在軟體生命週期的哪乙個階段,軟體缺陷修復的成本最高 a.需求分析 編制產品說明書 b.產品發布1.00 1.00c.編碼d.設計 正確答案 b 2單選 1分 下列中不屬於測試原則的是 a.找到的缺陷越多,軟體遺留的缺陷就越少1.00 1.00 b.完全測試程式是不可能的 c...

第二章 測試

測試用例編號 查詢的主鍵 查詢結果 1 衣服褲子 顯示 2全選 取消已選的專案勾選全選按鈕 未顯示任何結果 查詢結果分析 1 在對 衣服褲子 主鍵進行查詢時,查詢結果顯示正常資料 沒有顯示輸入模組金額為 aa 的資料 證明資料沒有插入成功,而頁面顯示插入成功,說明是 只判斷是否按下了 新增記錄 按鈕...

第二章測試

單選題 在創業者必備的成功基因中不屬於 人和 因素的是 a.個人品格 b.能力 c.資源 d.大趨勢 大趨勢 單選題 企業營業額0到100萬,處於企業創業期,此時企業的特點為 a.產品經歷市場檢驗 b.打造系統 c.統領行業 d.制定標準 產品經歷市場檢驗 單選題 企業營業額100萬到1000萬,企...