Releases: csoltenborn/GoogleTestAdapter
v0.11.1
- bugfix: automatic test executable detection failed for executables linking gtest dynamically (#169, thanks to Microsoft's Lukasz Mendakiewicz for fix)
v0.11.0
- enhancement: Google Test executables are identified automatically by investigating the binaries - custom regexes should not be necessary any more (#121)
- enhancement: Support for parameterized tests with name functors (#150, thanks to Shane Blackett for report and pull request)
- enhancement: Google Test reports the duration of tests faster than 0.5ms as 0ms. These tests are now reported to VS with a duration of 0.25ms, hopefully being more realistic than the former 0.1ms (#166)
- enhancement: release notes are now delivered from installation folder, slightly reducing dll size (#165)
- bugfix: error messages containing source file locations do not confuse the error message parser any more (#157)
- maintenance: improved NuGet package structure (#144, thanks to Microsoft's Jayarani Garg and Huy Nguyen for advice)
v0.10.2
- bugfix: missing
.pdb
files could cause test discovery to crash, resulting in no tests being found (#158, thanks to wasabinza and burbelgruff for report and fix) - enhancement: added support for .NET 4.7 (#161)
v0.10.1
First of all: We proudly announce the collaboration with Microsoft with the aim of further improving the Google Test experience in Visual Studio! The benefits for users of Google Test are various, the most important being that a version of the Google Test Adapter will ship with Visual Studio, making it even easier to use Google Test out of the box. This version (named Test Adapter for Google Test) is published by Microsoft, and will thus benefit from Microsoft's quality assurance resources (which are slightly bigger than ours).
Thus, there will be two versions of the adapter in the future:
- The Google Test Adapter is published by us. It will support Visual Studio 2012 and greater, and is supposed to be the bleeding edge version where new features are implemented and tested.
- The Test Adapter for Google Test is published by Microsoft as part of Visual Studio. It will support Visual Studio 2017 and greater and is supposed to be the more mature version of the adapter.
We will in the coming weeks integrate our latest release with the enhancements implemented by Microsoft, and figure out the details of our collaboration. If your are interested, keep an eye on our GitHub page.
Changes contained in this version:
- enhancement: a Visual Studio bug results in wrong behavior for Repeat Last Run (Ctrl+R, L): VS does not respect changes to the available tests since the last run. Tests which do not exist any more as well as test results for tests not known by VS are now ignored and produce a warning in debug mode. Note that VS still might run other tests than expected by the user - see issue for examples (#139)
- bugfix: solution settings were overridden by project settings in case of
NuGet
andVsTestConsole
execution (#140) - bugfix: occasional exceptions caused by missing synchronization when performing test discovery in parallel (#141)
- bugfix: NuGet package had installation issue (#137, thanks to JackGrinningCat for report, idea for fix, and testing)
- bugfix: test duration could not be parsed for some locales (#143)
v0.10.0
- enhancement: support for Google Test V1.8.0 (#103)
- enhancement: file
Foo.exe
is recognized as test executable if a fileFoo.exe.is_google_test
exists (no need to configure custom regex) (#121) - enhancement: test discovery is assumed to hang if it hasn't finished within
n
seconds;n
can be configured via the Test discovery timeout option and defaults to 30s (#90) - enhancement: test discovery is now performed in parallel and should thus be slightly faster for solutions with several test projects (#108)
- enhancement: test case information is now re-used when a selection of tests is executed, slightly speeding up the start of the tests (#107)
- bugfix: standard output produced by a test executable before a test's first assertion was lost (#134)
- bugfix: on isolated installations of VS 2017 (i.e., no parallel installation of older VS versions on the same machine), no source locations were found (#124, thanks to Farwaykorse for report and testing)
- bugfix: on isolated installations of VS2017, tests could not be debugged (#126, thanks to ninjaCoder for report and testing)
- maintenance: all executables used by the automatic tests are now built from source (#132)
- maintenance: solution can be built with VS 2015 and VS 2017 to ease contributions (#109)
v0.9.1
v0.9.0
- enhancement: Support for VisualStudio 2012 and 2017 has been added (#9, #93)
- enhancement: throttling of test result reporting has been switched off for VS2017 (#105)
- enhancement: new option Kill processes after cancel actively kills the test execution processes if the test run is canceled (#3)
- enhancement: test durations less than 1ms are now displayed as such in the VS test explorer (#104)
- bugfix: we are working on removing the difference between running and debugging tests (e.g., test crash detection is not working, and test output can not be printed to test console in debug mode). Additionally, the new test execution environment reports test results to VS during test execution, giving a slightly faster and more responsive user experience. It can be used by setting the Use new test exexution environment option to true (which is now the default value) and should now also work fine when debugging in X64 mode. Feel free to give it a try; if you encounter any problems, please report them to us (#76)
- bugfix: GTA had issues running within
vstest.console.exe
for x64 executables (#21) - bugfix: reference to LICENSE.txt has been fixed in NuGet specification (#96, thanks to JackGrinningCat for report and fix)
- bugfix: the VS test framework throws a
TestCanceledException
if test results are being reported after a test run has been canceled. This exception is now handled properly (#99) - simplification: the option to assign traits via regexes has been removed due to lack of usage (#94)
v0.8.0
- enhancement: it is now also possible to provide project-specific settings. Project settings are contained within solution and/or user settings files and assigned to projects via regular expressions matched against the test executables; see example solution settings and user settings. Note that this is a breaking change: the XML format of solution and user settings has been changed in the course of implementing this feature; see below for instructions on how to update your settings files (#74)
- enhancement: the restriction that tests can be run on at most as much threads as there are available processors has been removed (#80)
- enhancement: if running a test executable fails, GTA now gives more helpful error messages, additionally, all errors and warnings are printed again after test discovery/test execution finished (#91)
- enhancement: when tests are executed in parallel, some simple statistics about expected and actual test durations (which influence test distribution) are printed in debug mode (#81)
- enhancement: GTA can now also run tests having dots in suite names (and produced by using the Google Test API) (#89, thanks to Florin T. for report and sample code)
- enhancement: GTA is now also provided as a NuGet package. Adding it as dependency of Google Test projects enables Visual Studio to discover and run tests; however, Visual Studio integration is limited, since options and toolbar are not available if installed this way (#77)
- enhancement: we are working on removing the difference between running and debugging tests (e.g., test crash detection is not working, and test output can not be printed to test console in debug mode). Additionally, the new test execution environment reports test results to VS during test execution, giving a slightly faster and more responsive user experience. A first version can be used by setting the Use new test exexution environment option to true; it should work fine except debugging in X64 mode. Feel free to give it a try; if you encounter any problems, please report them to us (#76)
- bugfix: GTA can now deal with special characters (e.g., German umlauts) in test names, test suite names and prefixes, and value parameters (#72)
- bugfix: standard output parser can now deal with tests where one test's qualified name is be a prefix of another test's qualified name (#82)
- maintainability: refactored test project structure, added references to projects of SampleTests solution to main solution (#82)
Instructions for updating settings files
The new XML format is structured as follows:
<RunSettings>
<GoogleTestAdapterSettings>
<SolutionSettings>
<Settings>
<!-- solution settings -->
</Settings>
</SolutionSettings>
<ProjectSettings>
<Settings ProjectRegex="regex matching test executables">
<!-- project specific settings -->
</Settings>
<!-- more project settings -->
</ProjectSettings>
</GoogleTestAdapterSettings>
</RunSettings>
To update your solution and user settings, do as follows:
- copy the complete
<GoogleTestAdapterSettings>
node from above into your settings'<RunSettings>
node - copy the settings from the old
<GoogleTestAdapter>
node to the new<Settings>
node under<SolutionSettings>
- replace the complete
<ProjectSettings>
node with an empty<ProjectSettings/>
node (or create actual project settings if needed) - delete the complete
<GoogleTestAdapter>
node - do not forget to check in your changes if appropriate
Refer to documentation of settings for more detailed description of project settings.
v0.7.1
- enhancement: option PATH extension now supports placeholder $(ExecutableDir) (#66, thanks to cyrilbesse for request and testing)
- enhancement: new option Working directory allows to specify the working directory used when running the test executables (#71)
- enhancement: traits assigned to tests by means of regexes now also work in an additive manner, improving consistency of traits assignment accross trait assignment phases. Note that this might change the traits assigned to your tests - see issue for details. See also note below (#73)
- enhancement: GTA can now also handle tests written with older versions of Google Test which do not print type and value parameter information when listing tests (#68)
- enhancement: settings are now printed to test output if GTA is running in debug mode (#60)
- enhancement: cleaned up log output a bit (#62)
- bugfix: if listing of tests failed, GTA produces a warning now, and no further efforts are taken to parse SourceFileLocations (#63, thanks to Sergey Gomon for example solution)
- bugfix: if a test crashed, but produced output immediately before the crash, that output would not end up in the test explorer (#58)
- quality assurance: improved stability of end-to-end tests (#61)
Request for feedback: We would like to know whether any of our users indeed make use of the trait assignment by regexes options! If you happen to use that feature, please do us a favor and leave a short note at this issue - if nobody does, we might remove that option for the sake of configuration and code simplicity...
v0.7.0
- enhancement: custom C++ macros for adding traits to tests are now variadic, allowing for up to 8 traits to be assigned to each test, and greatly reducing code duplication; see below for instructions on how to migrate your existing tests (#38)
- enhancement: minor speed improvements during test execution; note that test adapter execution time while running tests is still dominated by registration of the test results with Visual Studio, see #15 (part of #52)
- bugfix:
ErrorMessageParser
crashed if VS deliverednull
as the solution directory instead of an empty string (#54, thanks to cyrilbesse for report and pull request) - bugfix: Release notes didn't work properly (#53)
- VS regression fixed: with update 2, the handling of test adapter options had been broken (Community and Professional edition). Update 3 fixes that problem (#50)
- VS regression fixed: with update 2, registering test results with VS became very slow for large numbers of tests (all editions). Again, update 3 fixes that problem (#52)
Making use of the new test macros
- Replace your existing GTA_Traits.h file(s) with the current one
- Using search and replace, change your code to use the new macros:
TEST_TRAITS1(
,TEST_TRAITS2(
,TEST_TRAITS3(
=>TEST_TRAITS(
TEST_F_TRAITS1(
,TEST_F_TRAITS2(
,TEST_F_TRAITS3(
=>TEST_F_TRAITS(
TEST_P_TRAITS1(
,TEST_P_TRAITS2(
,TEST_P_TRAITS3(
=>TEST_P_TRAITS(
TYPED_TEST_TRAITS1(
,TYPED_TEST_TRAITS2(
,TYPED_TEST_TRAITS3(
=>TYPED_TEST_TRAITS(
TYPED_TEST_P_TRAITS1(
,TYPED_TEST_P_TRAITS2(
,TYPED_TEST_P_TRAITS3(
=>TYPED_TEST_P_TRAITS(