Google
Test
在运行测试用例时,会根据分配给每个测试用例的随机种子值来随机排序测试用例的执行顺序。在运行时,测试用例的执行顺序是未知的。
如果您想在已知测试用例执行顺序的情况下按特定顺序运行它们,可以使用参数化测试。 参数化测试使您能够使用测试用例数据集合自动执行测试,其中每个测试用例由测试数据自动派生。 在Google
Test
中,您可以使用
TEST
_P()宏创建参数化测试。
例如,假设您有以下测试用例:
TEST
(My
Test
Suite,
Test
1) { … }
TEST
(My
Test
Suite,
Test
2) { … }
TEST
(My
Test
Suite,
Test
3) { … }
如果您希望按特定顺序运行测试用例,则可以创建以下参数化测试:
(请注意,在下面的示例中,我使用1,2,3代替了
Test
1,
Test
2,
Test
3,并按顺序编组参数列表。)
cl
as
s My
Test
Suite : public ::
testing
::
Test
WithParam<int> {};
TEST
_P (My
Test
Suite, Sequential
Test
) {
int
test
_num = GetParam();
switch (
test
_num) {
c
as
e 1:
//
Test
1
break;
c
as
e 2:
//
Test
2
break;
c
as
e 3:
//
Test
3
break;
根据以上代码,测试集合将按顺序执行测试用例,而不是按随机顺序运行。
要执行Parameterized
Test
s,您可以使用RUN_ALL_
TEST
S()宏,如下所示:
int main(int argc, char **argv) {
::
testing
::InitGoogle
Test
(&argc, argv);
::
testing
::Unit
Test
::GetInstance()->Run();
return 0;
这将执行所有测试,包括