I want to kick start the discussion for contributing support for the Google Test framework support. I have identified 3 stories which should give Gradle a functional support for Google Test.
Story: Specific class type for CUnit binary This story makes sure that subsequent test framework are discriminated. - Add class org.gradle.nativebinaries.test.cunit.CUnitTestSuiteExecutableBinary which extends from TestSuiteExecutableBinary User visible change - Backward compatibility is kept and the following configure all test suite binary regardless of there framework. binaries.withType(TestSuiteExecutableBinary) { // Target all test binaries } - It will now be possible to configure the CUnit test suite binary individually like this: binaries.withType(CUnitTestSuiteExecutableBinary) { // Target only CUnit binaries } Test cases apply 'cunit' model { testSuites { mainTest { binaires.all { assert it instanceof CUnitTestSuiteExecutableBinary } } } } Story: RunTestExecutable can take arguments This story make it possible to passed arguments to the test binary. Espacially useful for more advance test framework like Google Test. User visible change - tasks.withType(RunTestExecutable).all { testArgs '--args-to-pass', '-v' } Open issues - Is testArgs a good name for the property on the RunTestExecutable task. Story: Google Test support This story adds support for the Google Test framework. Note that the implementation is highly based on the current CUnit implementation. - Add class org.gradle.nativebinaries.test.googletest.GoogleTestTestSuite - Add class org.gradle.nativebinaires.test.googletest.GoogleTestTestSuiteExecutableBinary - Add class org.gradle.nativebinaires.test.googletest.plugins.GoogleTestPlugin - Add class org.gradle.nativebinaires.test.googletest.internal.DefaultGoogleTestTestSuite - Add class org.gradle.nativebinaires.test.googletest.internal.ConfigureGoogleTestTestSources - Add class org.gradle.nativebinaires.test.googletest.internal.CreateGoogleTestBinaries Open issues - Should the package name be 'googletest' or 'gtest' ('gtest' is used for there include namespace in c++)? - Should the C++ source set for Google Test named 'googletest' or 'gtest'? - How can we refactor CUnit code for reusability with Google Test? The process is the same - configure test source, create binaries, etc. - but yet different. -- Daniel