我使用CMake和ctest一起生成軟件測試。 作爲一個例子,我有一個二進制foo
,它正好有三個輸入參數 p1
,p2
,p3
。參數的範圍可以從0-2。 要檢查我的二進制foo
與p1
,p2
所有可能的組合,p3
我做的,我CMakeList.txtCmake ctest代
foreach(P1 0 1 2)
foreach(P2 0 1 2)
foreach(P3 0 1 2)
add_test(foo-p1${P1}-p2${P2}-p3${P3} foo ${P1} ${P2} ${P3})
endforeach(P3)
endforeach(P2)
endforeach(P3)
下面有沒有產生所有這些不同的測試更「優雅」的方式? 假設foo
需要10參數p1
,...,p10
這看起來很可怕。 在此先感謝。
難道你不會錯過在'add_test()'命令行調用'foo'本身嗎?關於你的問題,我不知道'add_test()'命令中的任何「參數範圍」選項。所以我不認爲你可以在CMake中進一步優化它。 – Florian
是的,你是對的,我編輯了我的文章 –
一個小的優化就是在像foreach(P1 RANGE 0 2)這樣的'foreach()'中使用'RANGE''。這些東西用於遍歷測試參數[通過CMake本身](https://github.com/Kitware/CMake/blob/master/Tests/CMakeLists.txt#L1481)。 – Florian