Visual Studio 2013 extension for running C++ unit tests written with GoogleTest framework.
Unit Test Runner (Adapter) for Google Test (gtest) unit testing framework.
Deployment: Refer to correct version of FSharp.Core (v 4.3.1 which is shipped with VS2013). Thanks mthierba.
GoogleTest Runner v1.7 - 3/2014
Real support for Visual Studio 2013. VS2012 installation is not required any more.
Fixed a bug reported by Róbert Dávid.
GoogleTest Runner v1.6.1 - 11/2013
Special thanks to Bryan Roth for implementing support for GoogleTest 1.7.0 parameterized tests!
GoogleTest Runner v1.6 - 10/2013
XML reports work when output path contains spaces
GoogleTest Runner v1.5 - 09/2013
Grouping of tests when running multiple tests from same suite
Groups "FooSuite.BarTest"; "FooSuite.BazTest" to"FooSuite.*" to make command line shorter when executing tests
GoogleTest Runner v1.4 - 09/2013
Working directory for running the tests is now the executable directory
GoogleTest Runner v1.3 - 09/2013
Support GoogleTest 1.7.0 Typed Parameter output from --gtest_list_tests
Microsoft DIA SDK changes: Not thread safe -> don't do parallel calls. Use and ship DIA SDK v110 (DiaSourceClass 761D3BCD-1304-41D5-94E8-EAC54E4AC172)
Finds tests from (anonymous) namespaces
Internal: Improved error handling
GoogleTest Runner v1.0 - 08/2013
Supports the discovery of unit tests written using GoogleTest framework in Visual Studio 2012 and Visual Studio 2013
Discovers test methods also from imported dlls (if you implement tests in libfoo.dll, but run them from libfootests.exe), so VS doesn't throw you into RT_MANIFEST
Supports projects whose output matches the regular expression "[Tt]est[s]{0,1}.exe"
The tests are discovered by running a matching executable with flag --gtest_list_tests
ReSharper8 might interfere with GoogleTest Runner in VS2012
Go to (VS2012 Tools | Options | ReSharper | Suspend)
Technical:
Written in F#
Uses Microsoft DIA SDK to read symbols from .pdb's
Some native calls to read dll imports from main executable
GoogleTest definitions TEST(FooSuite, FooMethod) creates a method named FooSuite_FooMethod_Test::TestBody for actually running the test, this is the one to look for when loading symbols
Test run results are saved to Path.GetTempFileName and read in using Xml Type provider