A. The project file has multiple Debug targets. One target is a
console application that runs all the tests; the "release" target is
GUI application that doesn't run tests. Most of the UI code was
untested. Encourages "thin" GUI.
B. The project file has one Debug target which is a GUI application.
When the app runs, the user can select a menu item to run the unit
tests. There are some difficulties when portions of application /UI
state is global (e.g. there is only one Application object, killing
that object kills the app.)
C. The project file has a GUI application target, but all the unit
tests are run before the UI starts waiting for user input. Similar
problems as B.
You'll have to experiment. Perhaps you can have multiple test apps,
each using gTest, and you have a python script that runs them. Each
test app can bring up the GUI, test something, and quit without
waiting for user input. This will probably be rather slow, so I would
suggest grouping all non-GUI tests into a single app for speed.
--
C. Keith Ray, IXP Coach, Industrial Logic, Inc.
http://industriallogic.com 866-540-8336 (toll free)
Groove with our Agile Greatest Hits: http://www.industriallogic.com/elearning/
http://agilesolutionspace.blogspot.com/
http://tech.groups.yahoo.com/group/testdrivendevelopment/