How to run specific test cases in GoogleTest

前端 未结 3 1945
暗喜
暗喜 2020-12-02 05:10

I am trying to write a function/method for my project, which will ask to user which all test cases are you going to run? It looks like below...,

Test_Cases_1         


        
相关标签:
3条回答
  • 2020-12-02 05:25

    Finally I got some answer, ::test::GTEST_FLAG(list_tests) = true; //From your program, not w.r.t console.

    If you would like to use --gtest_filter =*; /* =*, =xyz*... etc*/ // You need to use them in Console.

    So, my requirement is to use them from the program not from the console.

    Updated:-

    Finally I got the answer for updating the same in from the program.

     ::testing::GTEST_FLAG(filter) = "*Counter*:*IsPrime*:*ListenersTest.DoesNotLeak*";//":-:*Counter*";
          InitGoogleTest(&argc, argv);
    RUN_ALL_TEST();
    

    So, Thanks for all the answers.

    You people are great.

    0 讨论(0)
  • 2020-12-02 05:39

    You could use advanced options to run Google tests.

    To run only some unit tests you could use --gtest_filter=Test_Cases1* command line option with value that accepts the * and ? wildcards for matching with multiple tests. I think it will solve your problem.

    UPD:

    Well, the question was how to run specific test cases. Integration of gtest with your GUI is another thing, which I can't really comment, because you didn't provide details of your approach. However I believe the following approach might be a good start:

    1. Get all testcases by running tests with --gtest_list_tests
    2. Parse this data into your GUI
    3. Select test cases you want ro run
    4. Run test executable with option --gtest_filter
    0 讨论(0)
  • 2020-12-02 05:49

    Summarising @Rasmi Ranjan Nayak and @nogard answers and adding another option:

    On the console

    You should use the flag --gtest_filter, like

    --gtest_filter=Test_Cases1*
    

    (You can also do this in Properties|Configuration Properties|Debugging|Command Arguments)

    On the environment

    You should set the variable GTEST_FILTER like

    export GTEST_FILTER = "Test_Cases1*"
    

    On the code

    You should set a flag filter, like

    ::testing::GTEST_FLAG(filter) = "Test_Cases1*";
    

    such that your main function becomes something like

    int main(int argc, char **argv) {
        ::testing::InitGoogleTest(&argc, argv);
        ::testing::GTEST_FLAG(filter) = "Test_Cases1*";
        return RUN_ALL_TESTS();
    }
    

    See section Running a Subset of the Tests for more info on the syntax of the string you can use.

    0 讨论(0)
提交回复
热议问题