Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Difference in SLOC between js-coverage and blanket #113

Closed
stevegeek opened this issue Dec 3, 2012 · 9 comments
Closed

Difference in SLOC between js-coverage and blanket #113

stevegeek opened this issue Dec 3, 2012 · 9 comments

Comments

@stevegeek
Copy link

I noticed js-coverage and blanket report slightly different SLOC and % coverage

When comparing side-by-side outputs from the HTMLCov reporter it looks like some single line comments are counted as lines of code in blanket

Eg from js-coverage: (file reports 29 SLOC)

70                  }
71                  // the comment
72  2               _.each(filters, function (promise) {
73  8                   if (promise.data) {

from blanket: (file reports 33 SLOC)

70                  }
71  1               // the comment
72  2               _.each(filters, function (promise) {
73  7                   if (promise.data) {

Version 0.9.7

@alex-seville
Copy link
Owner

I think unfortunately(/hopefully) this issue and #114 have already been resolved, but npm hasn't been updated.
You could test this theory by copying lib/blanket.js from github to your node_modules/blanket/lib folder.

I feel like this issue may already be resolved because on the browser side it is no longer counting comments. You can see this in action with test/requirejs/require_runner.html. The first line of the covered file is a comment.

I will try to update npm asap. Thanks.

@alex-seville
Copy link
Owner

npm updated to 0.9.8. Can you let me know if you still experience the same problem? Thanks.

@stevegeek
Copy link
Author

Thanks for the quick update, this problem however still seems to exist on node. The output SLOC/line hit counts dont seem to have changed after upgrading

@alex-seville
Copy link
Owner

Can you provide a sample file? If it's proprietary you can change some of the non-comment lines. There may be some other code in the file that combines with the comment to cause a problem. I've run some tests here of just single line comments and I get the same result in node and in the browser, so I'm thinking that your inconsistency might be the symptom of a more complex bug.

@stevegeek
Copy link
Author

Here is a toy code example module that seems to reproduce the problem for me:

module.exports = {

    // A comment
    d: function (data) {
        this.stuff(data);
    }
};

a test file requires blanket and the above module,

require('blanket')('testblanket');
require('./test');

and then mocha is run with: mocha --reporter html-cov test.js > test.html

output:

1        
2   1   module.exports = {
3        
4   1       // A comment
5           d: function (data) {
6   0           this.stuff(data);
7           }
8       };

blanket@0.9.8 reported by npm

@alex-seville
Copy link
Owner

Great, thanks for the sample. I'll take a look at this tomorrow and see where the issue is.

@alex-seville
Copy link
Owner

I wrote a test and solved this problem. Thanks for highlighting it. I will commit it in a day or two, I accidentally added it in the middle of another commit, so I'll finish the other features and push it in.

@alex-seville
Copy link
Owner

Fixed in #117

@stevegeek
Copy link
Author

Excellent will test today, thanks again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants