Skip to content

mvpete/CPPUnitTest2

Repository files navigation

CPPUnitTest2

Brief

An experiment to enhance the Microsoft C++ Unit Test Framework.

History

I was getting extremely frustrated with the MS C++ test framework logging outputs, mostly for the reasons described below. Also, I just think that it's foundation is really cool and they played some neat tricks to expose the test classes and methods, which I wanted to explore.

Gripes

  1. When a C++ exception (std::exception) is thrown, the output in the test window is "an unknown C++ exception occurred".
  • This seems silly because if it's a standard exception they should at least be able to print the message from e.what().
  • After an enlightening ah-ha moment at CPPCON2017, I realised this may be less straightforward than I thought. Could it be that there are ABI compatibility issues between different compiler versions for std::exception? I'm not sure I care about this for my personal projects, but Microsoft probably does. :P
  1. When the execution context tries to load a library with dependencies, the message is "failed to setup execution context"
  • This one is a little harder, I haven't fixed it quite yet. But I will. This information is available in the PE format, why not walk it and show the missing library.
  1. Tests can only be named by the class name, this doesn't allow for any spaces in the test name
  • Added a specific attribute that allows the test name to be overrided.

About

CPPUnitTest2 - a VC2015 Extension for discovering MS CPP Unit Test Framework tests

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published