StackOverflow has a rather extensive post which details many of the available code-coverage solutions for C#/.Net. Content reproduced below, and all credit should go to the users of SO:
Seems to be very popular and looks quite good
Supports statement coverage and branch coverage
$658 for a Desktop License
Older Beta-Versions available for free
Unit testing framework comparison criteria
You should consider the following important criteria for comparing C++ unit testing frameworks:
Compatibility: whether the framework compiles with your project. You may be using options like -fno-rtti and some frameworks then fail to compile.
User friendliness: how much work is it to write a test. C++ does not ...
You could use common mocking frameworks like FakeItEasy or Moq and solve some of your "advanced" scenarios with tools like Ionad.Fody and EnableFaking.Fody. These modify the compiled IL code (weaving) so that you can mock it.
However there's limitations and you most likely won't be able to address all of your advanced needs.
I would like to supplement the community wiki answer with a couple of other points to consider when selecting your testing framework, this is addressing your picking a test tool:
Price - Free or reasonably priced testing frameworks such as Google Test and CppUnit will almost always be ahead on popularity but may not meet your other requirements.
Level of ...
A completely free possibility is Prig, which is even open-source. It may be a bit less user-friendly than the commercial alternatives, but seems to work quite well. Note that if the signature of the method doesn't match one of the pre-defined delegates it will silently fail to generate the method to mock it - you have to manually define the missing delegate ...
I wanted the same thing for YEARS, I finally found the time to make what I needed and it can be found here: https://github.com/inorton/junit2html
It generates full a full detailed single HTML page that contains all of the test results and captured content with a reasonably easy to browse index.
Generate reports from your build system.
Ant JUnitReport: http://ant.apache.org/manual/Tasks/junitreport.html and http://earlwillis.wordpress.com/2012/01/31/getting-started-with-junit-reports/
Maven surefire-report:report http://maven.apache.org/surefire/maven-surefire-report-plugin/report-mojo.html
It sounds like you are mostly concerned with testing the GUI elements, (there are many test frameworks for testing the execution but not so many for the GUI).
One cross platform solution for testing the GUI elements is sikuli - it is a python test framework but since it relies on image recognition for the test actions and some results it should also work ...
This web site on automated testing lists quite a few academic and commercial test case generators. Unfortunately, I don't see any that generate test cases en masse. Most, if not all, seem to generate tests for either one class or one method at a time.
Update: Agitar's claims its JUnit Generator can generate many unit tests quickly. I don't know if it is ...
My team used Jasmine. It's one of the first JS testing frameworks that appeared on the scene, and it's still in active development.
Writing tests with it is easy, it just takes some statements. If you are doing TDD, that's probably something you probably care about, since you don't want to spend all your time writing tests, or soon you'll get tired of it.
infinitest seems to fit the bill, but it's a bit tricky to use.
Also, there is a youtrack entry for JetBrains to include continuous testing as a feature for the future versions - you might want to add your vote to the list:
As a mocking framework I use hippomocks. It can be combined with any unit testing framework.
The advantage is that it's a header only framework that does the mocking part during runtime (no pre-build steps required). The down-side is it works only in Intel based architectures.
What I really like is that it also allows to mock static functions.
We use Typemock's Isolator++, this is the most friendly mocking tool i encountered for C.
The mocking abilities is extremely friendly because 100% of your code remains comepletely untouched.
This framework allows you to fake every kind of method or class and control the methods behavior.
It also integrates with GoogleTest which we use in my team and it works ...
I've been using Typemock's Isolator for a few years and it works really well. I think it fits your needs because:
it is a full unit testing framework
it has a feature called "suggest", that creates test suggestions automatically
it has a test runner
it includes a mocking framework
it has a coverage tool
it integrates with VS2017
What you need is actually so called "Proxy-DLL".
There are some solutions on the web.
My favorite is an AutoIt script posted (russian, 1st link binariy, 2nd src) on Habrahabr, which creates VisualStudio 2008/2010 project for any DLL.
All functions are forwarded to the original DLL, you probably will like to overwrite some of them.
I think it should not be incredibly difficult to use some scripting and get that done. I'm not describing a full solution here, more like a sketch (since I don't do development on Windows), but:
Install Cygwin (or use MS Windows equivalents of the Unix tools I propose)
Use your Depends.exe to get the DLL contents listing
(assuming you don't care about ...
I've found out that it's possible to combine Travis CI and Codecov and run Coverage.py on Travis CI using this stucture:
This assumes that your are using the Python unittest module, other examples (for pytest and nose) can be found here:
Hope this ...
The easiest and fastest possible way to automate browser AND use conditions like "if we're logged in do this, otherwise do this" is this free chrome extension:
It has no macro recording options or graphical click/select IDE, but writing scripts is really fun. There are many browser automation products that claims to be simple, ...
My team and I use Typemock's Isolator.
It supports .Net framework, MSTest, Nunit and Windows.You can run it on a developer machine as well.
We use the paid version, that I believe would be able to help you. There is a free version, though I'm not sure it can satisfy your needs.
Google test grew out of the Cmockery C unit test project, which Google open sourced and abandoned, which now lives on as Cmocka.
I can highly recommend it from personal experience. However, I have only used it from Eclipse, not MSVC, so can’t guarantee anything.
AFAIK, MSVC will let you choose your toolchain, so you would only be using it for the GUI; ...
We started doing some tests with Google Test (which includes Google Mock) to get things going and see which problems will arise in practice. This is still a C++ testing framework, so the concerns from my question still apply, but it was easy to integrate so we just had to give it a try:
It's very easy to write a test (not much plumbing compared to some ...
You can use Sikuli X to automate anything that you can see on your PC screen including using image recognition to find specific buttons to click on regardless of the actual position on the screen. This of course can include anything that is occurring on in the emulation environment or is repeated to the PC screen from an actual device.
You can click, ...
Some tricks that can be used to identify items in a large codebase that actually do nothing is to use a code documentation tool like doxygen with options to display the call graph and caller graph and look for all the items that have either no calls, (not the actual test is commented out), or no callers, (the call to the test is commented out), looking at ...
Not free or even cheap but you might be able to get a demo licence but this sounds like a job for LDRA TBRun &/or LDRAunit - the nice thing is that it will quite rapidly tell you which stubs are needed and generate the framework for them, both at unit level and sub-system level.
It will also allow unit testing on the target hardware as well as on a ...
I would take a look at Sikuli for the GUI. It is a python/java scripted system for testing and driving GUI components that is cross platform and independent of the code of the GUI it is testing.
Does not depend on item naming or IDs
Does not require modification of the GUI code
Does not use fixed positions
Uses image recognition to identify GUI components &...