numenta/nupic.core — pull request #145 by utensil (2014-07-06 06:27:49+00:00)
Title: Integrating Catch test framework with nupic.core

This PR is to track the work on #10 , using the Catch test framework . Probably replaces #135.

Catch stands for C++ Automated Test Cases in Headers, is a modern, C++-native, header-only, framework for unit-tests, TDD and BDD, see https://github.com/philsquared/Catch .

After trying to provide the gtest binary in #135 , I've realized that introducing an external binary dependency such as `google test` might not be the best fit for `nupic.core`. And after I encountered Catch , I found it:

* is header-only, thus little hassle to add it to `nupic.core`, unlike gtest
* provides all gtest functionalities including JUnit-style xml output as needed by #10
* provides [BDD-style assertion macros](https://github.com/philsquared/Catch/blob/master/docs/tutorial.md#bdd-style), which is tempting to me who was influenced by ruby's [cucumber](https://github.com/cucumber/cucumber)

This PR intends to complete the following tasks:

- Essential:
* [ ] make catch generate xUnit style reports as the original #10 requests
* [ ] enable gcov and such to generate coverage reports for https://coveralls.io/
* [ ] porting original tests in `testeverything`
* [ ] decide a goal name for unit test, for now I'm using `tests_unit`
- Nice to have:
* [ ] make test cases not built for `nupic.core` release and `nupic` pip package, which would prevent unnecessary dependencies on gtest binaries, as originanlly discussed at https://github.com/numenta/nupic.core/issues/10#issuecomment-47560471
* [ ] adds unit tests for methods and classes that are currently not covered

This PR is not ready to merge yet.