テストの1つでコマンドライン引数を使用したいと思います。ウェブ上でこの例を見つけることができませんでした。
TEST(SomeTest)
{
std::string file("this is some command line argument");
CHECK(something);
}
int main(int argc, char** argv)
{
return UnitTest::RunAllTests();
}
何か案は?
テストの1つでコマンドライン引数を使用したいと思います。ウェブ上でこの例を見つけることができませんでした。
TEST(SomeTest)
{
std::string file("this is some command line argument");
CHECK(something);
}
int main(int argc, char** argv)
{
return UnitTest::RunAllTests();
}
何か案は?
あなたが探しているのは、それぞれに新しいテストを作成せずに「テスト入力」を指定できる機能だと思います。
テスト ルーチンを実行したい 3 セットのテスト データがあるとします。走りたいだけ
./unittest_build SomeTest file1
./unittest_build SomeTest file2
./unittest_build SomeTest file3
テストビルドにテストを焼き付けずに。
ただし、次のようにすることもできます。
void runCheck(const std::string& filename) {
std::string file(filename);
// well, you're gonna do stuff here
CHECK(something);
}
TEST(SomeTest)
{
runCheck(std::string("your first testing datafile"));
runCheck(std::string("your second testing datafile"));
runCheck(std::string("your third testing datafile"));
// this is what your test is. It tests these files.
}
int main(int argc, char** argv)
{
return UnitTest::RunAllTests();
}
テストをパラメーター化するということは、テストが単なるテストではなくなることを意味します。これは単体テストではなく関数になりました。