summaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
...
* Port rebar_eunit_tests to WindowsJuhani Rankimies2010-10-271-5/+12
|
* Port rebar_file_utils to WindowsJuhani Rankimies2010-10-271-0/+265
| | | | | | | | Modify rm_rf and cp_r to work when {win32,_} = os:type(). Simplify rm_rf to only accept one filename, directoryname or wildcard. Add unit tests to ensure a similar behaviour on windows and unix. Thanks to tuncer for guidance and feedback.
* Fix incorrect coverage count when prod modules include EUnit header.Chris Bernard2010-05-151-2/+22
| | | | | | | | Modules that include the EUnit header get an implicit test/0 fun, which cover considers a runnable line, but eunit:(TestRepresentation) never calls. Result: prod modules with tests can never reach 100% coverage. Ironic. In this case, fix it by decrementing the NotCovered counter returned by cover:analyze/3.
* Fixed 3 bugs in rebar_eunit. Added EUnit tests to capture them.Chris Bernard2010-03-041-0/+229
1. When running the eunit command with the convention of putting tests in "*_tests" modules, eunit would run those tests twice. This is because: 1) eunit:test/1 will naturally look for foo's tests both in foo, and in foo_tests, and 2) eunit:test/1 was being folded over all project modules. The fix is to filter "*_tests" modules from the list passed to eunit:test/1. 2. When running the eunit command with cover enabled and tests in a 'test' directory, cover would error because it couldn't find the source code for those tests. This is because cover:analyze/3 will only find module source in "." and "../src". This is hard-coded in cover :-(. Since cover shouldn't be calculating code coverage on test code anyway, the fix is to not fold cover:analyze/3 over non-production code. 3. When running the eunit command with cover enabled and a test suite defined, cover would only attempt to calculate coverage on the the test suite itself. This was because only the suite was passed to cover:analyze/3. The fix is to fold cover:analyze/3 over all the production code, filtering out the suite module if it is defined.