我已在Visual Studio 2013中安装了Google Test runner扩展程序。
现在我有一个测试项目
TestProject
|
|-InitializationTests.cpp
|-RunningTests.cpp
我希望在InitializationTests.cpp
内的测试之前运行RunnintTests.cpp
内的所有测试用例。我怎么能做到这一点?
答案 0 :(得分:10)
当然可以!这是一个不具体的计划 main.cpp:
::testing::GTEST_FLAG(filter) = "tA.*";
RUN_ALL_TESTS();
::testing::GTEST_FLAG(filter) = "tB.*";
RUN_ALL_TESTS();
::testing::GTEST_FLAG(filter) = "tC.*";
return RUN_ALL_TESTS();
它将按下一个顺序运行:
tA.*,
tB.*,
tC.*,
答案 1 :(得分:2)
测试框架通常不允许控制测试的顺序,因为一般要求测试彼此独立。
但您可以随时运行单个测试,而Google Test有一个强大的选项来控制要运行的测试。从Google Test advanced guide:如果将GTEST_FILTER环境变量或--gtest_filter标志设置为过滤字符串,Google Test将仅运行其全名(以TestCaseName.TestName形式)与过滤器匹配的测试
对于您的用例,假设您通过调用:
执行测试项目中的所有测试TestProject
您只能通过运行:
运行初始化测试TestProject --gtest_filter=InitializationTests.*
(提供InitialisationTests.cpp
包含测试用例InitializationTests
)的测试
答案 2 :(得分:1)
测试顺序应该是独立的。并且GTest不允许控制订单。更多:测试可以并行运行