We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 8aac20d + 6081389 commit d5b25f2Copy full SHA for d5b25f2
8 files changed
api.js
@@ -18,6 +18,7 @@ function Api(files, options) {
18
EventEmitter.call(this);
19
20
this.options = options || {};
21
+
22
this.rejectionCount = 0;
23
this.exceptionCount = 0;
24
this.passCount = 0;
cli.js
@@ -17,6 +17,7 @@ if (debug.enabled) {
17
require('time-require');
}
+var arrify = require('arrify');
var meow = require('meow');
var updateNotifier = require('update-notifier');
var chalk = require('chalk');
@@ -35,6 +36,7 @@ var cli = meow([
35
36
' --init Add AVA to your project',
37
' --fail-fast Stop after first test failure',
38
' --serial Run tests serially',
39
+ ' --require Module to preload (Can be repeated)',
40
'',
41
'Examples',
42
' ava',
@@ -46,7 +48,10 @@ var cli = meow([
46
48
'Default patterns when no arguments:',
47
49
'test.js test-*.js test/*.js'
50
], {
- string: ['_'],
51
+ string: [
52
+ '_',
53
+ 'require'
54
+ ],
55
boolean: [
56
'fail-fast',
57
'serial'
@@ -64,7 +69,8 @@ log.write();
64
69
65
70
var api = new Api(cli.input, {
66
71
failFast: cli.flags.failFast,
67
- serial: cli.flags.serial
72
+ serial: cli.flags.serial,
73
+ require: arrify(cli.flags.require)
68
74
});
75
76
api.on('test', function (test) {
lib/babel.js
@@ -16,6 +16,11 @@ if (debug.enabled) {
16
// Bind globals first, before anything has a chance to interfere.
var globals = require('./globals');
+var resolveCwd = require('resolve-cwd');
+(opts.require || []).forEach(function (moduleId) {
+ require(resolveCwd(moduleId));
+});
var sourceMapCache = Object.create(null);
25
26
var sourceMapSupport = require('source-map-support');
@@ -33,7 +38,6 @@ sourceMapSupport.install({
33
var createEspowerPlugin = require('babel-plugin-espower/create');
34
var requireFromString = require('require-from-string');
var loudRejection = require('loud-rejection/api')(process);
-var resolveCwd = require('resolve-cwd');
var hasGenerator = require('has-generator');
var serializeError = require('serialize-error');
43
var send = require('./send');
package.json
@@ -78,6 +78,7 @@
78
],
79
"dependencies": {
80
"arr-flatten": "^1.0.1",
81
+ "arrify": "^1.0.0",
82
"ava-init": "^0.1.0",
83
"babel-core": "^5.8.23",
84
"babel-plugin-espower": "^1.1.0",
readme.md
@@ -102,6 +102,7 @@ $ ava --help
102
--init Add AVA to your project
103
--fail-fast Stop after first test failure
104
--serial Run tests serially
105
+ --require Module to preload (Can be repeated)
106
107
Examples
108
ava
test/api.js
@@ -260,3 +260,17 @@ test('test file in node_modules is ignored', function (t) {
260
t.true(/Couldn't find any files to test/.test(err.message));
261
262
263
264
+test('Node.js-style --require CLI argument', function (t) {
265
+ t.plan(1);
266
267
+ var api = new Api(
268
+ [path.join(__dirname, 'fixture/validate-installed-global.js')],
269
+ {require: [path.join(__dirname, 'fixture', 'install-global.js')]}
270
+ );
271
272
+ api.run()
273
+ .then(function () {
274
+ t.is(api.passCount, 1);
275
+ });
276
test/fixture/install-global.js
@@ -0,0 +1 @@
1
+global.foo = 'bar';
test/fixture/validate-installed-global.js
@@ -0,0 +1,3 @@
+import test from '../../';
2
3
+test(t => t.is(global.foo, 'bar'));
0 commit comments