Why does testem seem to ignore the TestLoader?


#1

When I run testem in CI mode via ember test --serve, it seems all tests are being run, even those that I would expect to be excluded via the test loader: https://github.com/ember-cli/ember-cli-qunit/blob/master/vendor/ember-cli-qunit/test-loader.js#L9

function moduleMatcher(moduleName) {
return moduleName.match(/\/.*[-_]test$/) || (!QUnit.urlParams.nojshint && moduleName.match(/\.jshint$/));
}

For example, attempting to bypass jshint via specifying:

"test_page": "tests/index.html?nojshint" in testem.json does not have the expected result, nor does selecting “Disable JSHint” from the UI served by testem.

This is not the case for tests run by navigating to /tests in development.


#2

I don’t have a solution for you, but can offer my support. I’ve been running into this myself that past few days. I have also tried

const app = new EmberApp({
  hinting: false
});

which isn’t respected either.

Have also been editing /node_modules/ember-cli/lib/broccoli/ember-app.js and /node_modules/ember-cli/lib/broccoli//models/addon.js. Can see where hinting: false comes through but the addon files still make it into the trees and are JSHinted.

https://github.com/ember-cli/ember-cli/issues/4371 is the closest thing I’ve found related to this.


#3

Make sure your ember-cli-test-loader is at current version 0.2.1 in bower.json and your ember-cli-qunit is at 1.0.3 in package.json. ember-cli-test-loader is an easy one to miss, and there have been recent changes in the test inclusion/exclusion code there.