按特定顺序运行测试

时间:2015-01-14 07:59:40

标签: c++ visual-studio-2013 googletest

我已在Visual Studio 2013中安装了Google Test runner扩展程序。

现在我有一个测试项目

TestProject
    |
    |-InitializationTests.cpp
    |-RunningTests.cpp

我希望在InitializationTests.cpp内的测试之前运行RunnintTests.cpp内的所有测试用例。我怎么能做到这一点?

3 个答案:

答案 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不允许控制订单。更多:测试可以并行运行