|
|
@ -2,11 +2,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
## 使用方法
|
|
|
|
## 使用方法
|
|
|
|
|
|
|
|
|
|
|
|
clone 專案
|
|
|
|
clone 專案並進入專案目錄
|
|
|
|
```sh
|
|
|
|
```sh
|
|
|
|
git clone https://gitea.cglab.cs.nccu.edu.tw/yhchen/gtest_exercise.git
|
|
|
|
git clone https://gitea.cglab.cs.nccu.edu.tw/yhchen/gtest_exercise.git
|
|
|
|
|
|
|
|
cd gtest_exercise
|
|
|
|
```
|
|
|
|
```
|
|
|
|
建立 build 資料夾,所有編譯需要的檔案會被建立在這個資料夾裡面
|
|
|
|
建立 build 目錄,所有編譯需要的檔案會被建立在這個目錄裡面
|
|
|
|
```sh
|
|
|
|
```sh
|
|
|
|
mkdir build
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cd build
|
|
|
@ -16,10 +17,16 @@ cd build
|
|
|
|
cmake ..
|
|
|
|
cmake ..
|
|
|
|
make
|
|
|
|
make
|
|
|
|
```
|
|
|
|
```
|
|
|
|
進到 `unittest` 目錄,如果有看到 `utest` 執行檔,代表編譯順利完成
|
|
|
|
進入 `unittest` 目錄,如果有看到 `utest` 執行檔,代表編譯順利完成
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
|
|
|
cd unittest
|
|
|
|
|
|
|
|
./utest
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 練習內容
|
|
|
|
## 練習內容
|
|
|
|
在 `src` 目錄中含有 `sphere` 物件的宣告及實作,但是這個程式碼中有一些錯誤的部分,同學需要自己撰寫 `unittest` 來找出程式碼錯誤的部分並做出修正
|
|
|
|
在 `src` 目錄中含有 `sphere` 物件的宣告及實作,但是這個程式碼中有一些邏輯錯誤,同學需完成以下步驟:
|
|
|
|
|
|
|
|
1. 編寫 unittest 使 sphere 程式碼覆蓋率達到 70% 以上
|
|
|
|
|
|
|
|
2. 修改 `sphere.cc` 程式碼,使程式的邏輯完全正確
|
|
|
|
|
|
|
|
|
|
|
|
## 覆蓋率計算
|
|
|
|
## 覆蓋率計算
|
|
|
|
這個專案的 cmake 檔案包含計算覆蓋率的工具,會在編譯 `unittest` 及 `src` 目錄時同時產生覆蓋率統計的檔案在 `build/資料夾位置/CMakeFiles/專案名稱.dir/檔案名稱.cc.gcno`,在執行過程式之後,可以執行下列指令顯示覆蓋率
|
|
|
|
這個專案的 cmake 檔案包含計算覆蓋率的工具,會在編譯 `unittest` 及 `src` 目錄時同時產生覆蓋率統計的檔案在 `build/資料夾位置/CMakeFiles/專案名稱.dir/檔案名稱.cc.gcno`,在執行過程式之後,可以執行下列指令顯示覆蓋率
|
|
|
|