title: How to use INSTANTIATE_TEST_CASE_P in header file with multiple test .cpps?
body: <p>Say I have a GTest fixture defined in a header file fixtures.h:</p>
  
  <pre><code> class baseFixture : public ::testing::Test{
     // some shared functionality among tests
   }
  </code></pre>
  
  <p>As well as a derived fixture that allows for some parameterization:</p>
  
  <pre><code>class derivedFixture: public baseFixture, 
    public ::testing::WithParamInterface&lt;std::tuple&lt;bool, int&gt;&gt;{};
  </code></pre>
  
  <p>That I would like to use along with INSTANTIATE_TEST_CASE_P in order to parameterize a large set of tests that are distributed among N .cpp files. I would like to write in the header:</p>
  
  <pre><code>INSTANTIATE_TEST_CASE_P(derivedTests, derivedFixture, 
    ::testing::Combine(::testing::Bool(), ::testing::Values(1));
  </code></pre>
  
  <p>In order to run the set of tests for the cross product of {true, false} and {1}. When I compile just one cpp file, call it N1.cpp, and run the executable, I get the correct behavior with my <code>TEST_P(derivedFixture*</code> tests- they run twice each. However, when I build the whole project and execute my tests, each test is run 2 * N times. I have used include guards in the header file to prevent the INSTANTIATE macro from being invoked twice, and am positive I do not invoke it anywhere else. </p>