eater v3
has the following changes.
previous eater, every test files were running in isolated process, but every subtest is not isolated process.
for example,
const test = require('eater/runner').test;
test('abc', (done, fail) => {
global.mock = 1;
console.log(global.mock); // 1
done();
});
test('def', (done, fail) => {
console.log(global.mock); // 1 because previous test mock is still alive.
done();
});
after v3.0.0, eater can run every tests in isolated process
const test = require('eater/runner').test;
test('abc', (done, fail) => {
global.mock = 1;
console.log(global.mock); // 1
done();
});
test('def', (done, fail) => {
console.log(global.mock); // undefined
done();
});
before v3.0, we need to use done
method to finish the subtest.
const test = require('eater/runner').test;
test('abc', (done, fail) => {
global.mock = 1;
console.log(global.mock); // 1
done();
});
after v3.0, we need not to call done
.
const test = require('eater/runner').test;
test('abc', () => {
global.mock = 1;
console.log(global.mock); // 1
});
Every subtest process is an isolated.
Reporter counts success/failure test count. And show duration time.
Published by yosuke-furukawa over 8 years ago
eater v3.0 will be released soon.
eater
has the following changes.
previous eater, every test files were running in isolated process, but every subtest is not isolated process.
for example,
const test = require('eater/runner').test;
test('abc', (done, fail) => {
global.mock = 1;
console.log(global.mock); // 1
done();
});
test('def', (done, fail) => {
console.log(global.mock); // 1 because previous test mock is still alive.
done();
});
after v3.0.0, eater can run every tests in isolated process
const test = require('eater/runner').test;
test('abc', (done, fail) => {
global.mock = 1;
console.log(global.mock); // 1
done();
});
test('def', (done, fail) => {
console.log(global.mock); // undefined
done();
});
before v3.0, we need to use done
method to finish the subtest.
const test = require('eater/runner').test;
test('abc', (done, fail) => {
global.mock = 1;
console.log(global.mock); // 1
done();
});
after v3.0, we need not to call done
.
const test = require('eater/runner').test;
test('abc', () => {
global.mock = 1;
console.log(global.mock); // 1
});
Every subtest process is an isolated.
But currently, we need to make the mode to be stable and improve performance.
so we will pre-release this as v3.0.0-0.
Published by yosuke-furukawa over 8 years ago
features
--glob
mode to find test filesPublished by yosuke-furukawa over 8 years ago
test
functions// test/some/func.js
const test = require('eater/runner').test;
const assert = require('power-assert');
test('foo', (resolve, reject) => {
assert(alice == bob);
resolve();
});
test('bar', (resolve, reject) => {
assert(alice !== bob); // fail here
resolve();
});
test('buz', (resolve, reject) => {
assert(alice !== bob);
if (alwaysTrue) {
resolve('pass'):
}
reject('should not be reached here');
});
Testing... : foo
✓ success foo
✗ failure bar
✓ success buz
✓ test/some/func.js
Published by yosuke-furukawa over 8 years ago
read test settings from package.json
and .eaterrc
Published by yosuke-furukawa over 8 years ago
--procs
option is concurrent process numbers--require
option is pre-require option--reporter
option for custom reporterDevelopers can create custom reporter like this.
'use strict';
const Reporter = require('eater').Reporter;
class DotReporter extends Reporter {
reportFileNumber(num) {
}
reportTestName(name) {
}
setChildProc(child) {
child.stdout.on('data', () => {process.stdout.emit('data', '')});
child.stderr.on('data', () => {process.stderr.emit('data', '')});
}
reportFailure(name) {
console.log('F');
}
reportSuccess(name) {
console.log('.');
}
}
module.exports = DotReporter;
$ eater --reporter dotreporter