Skip to content

Commit 7806b0e

Browse files
Add preserveTestName CLI flag to remove partition and browser
1 parent 79ae563 commit 7806b0e

5 files changed

Lines changed: 200 additions & 70 deletions

File tree

addon-test-support/-private/patch-testem-output.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ export function updateTestName(urlParams, testName) {
1515
const partition = urlParams.get('partition') || 1;
1616
const browser = urlParams.get('browser') || 1;
1717

18-
if (split && loadBalance) {
18+
const preserveTestName = !!urlParams.get('preserveTestName');
19+
20+
if (preserveTestName) {
21+
return testName;
22+
} else if (split && loadBalance) {
1923
testName = `Exam Partition ${partition} - Browser Id ${browser} - ${testName}`;
2024
} else if (split) {
2125
testName = `Exam Partition ${partition} - ${testName}`;

lib/commands/exam.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ module.exports = TestCommand.extend({
4343
description:
4444
'Load balance test modules. Test modules will be sorted by weight from slowest (acceptance) to fastest (eslint).',
4545
},
46+
{
47+
name: 'preserve-test-name',
48+
type: Boolean,
49+
default: false,
50+
aliases: ['ptn'],
51+
description:
52+
'Preserve the test name when using load balance or split by omitting the partition and browser numbers.',
53+
},
4654
{
4755
name: 'random',
4856
type: String,
@@ -183,6 +191,14 @@ module.exports = TestCommand.extend({
183191
);
184192
}
185193

194+
if (commandOptions.preserveTestName) {
195+
commandOptions.query = addToQuery(
196+
commandOptions.query,
197+
'preserveTestName',
198+
commandOptions.preserveTestName
199+
);
200+
}
201+
186202
if (commandOptions.filePath) {
187203
commandOptions.query = addToQuery(
188204
commandOptions.query,

node-tests/unit/commands/exam-test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ describe('ExamCommand', function () {
8181
});
8282
});
8383

84+
it('should set `preserve-test-name` in the query option', function () {
85+
return command.run({ preserveTestName: true }).then(function () {
86+
assert.strictEqual(called.testRunOptions.query, 'preserveTestName');
87+
});
88+
});
89+
8490
it('should set `partition` in the query option with multiple partitions', function () {
8591
return command.run({ split: 2, partition: [1, 2] }).then(function () {
8692
assert.strictEqual(

tests/unit/mocha/testem-output-test.js

Lines changed: 84 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,44 +10,94 @@ if (macroCondition(dependencySatisfies('ember-mocha', '*'))) {
1010
let { expect } = importSync('chai');
1111

1212
describe('Unit | Mocha | patch-testem-output', () => {
13-
it('add partition number to test name when `split` is passed', function () {
14-
expect(
15-
TestemOutput.updateTestName(
16-
new Map().set('split', 2),
17-
'test_module | test_name'
18-
)
19-
).to.equal('Exam Partition 1 - test_module | test_name');
20-
});
13+
describe('`preserveTestName` is passed', () => {
14+
it('does not add partition number to test name when `split` is passed', function () {
15+
expect(
16+
TestemOutput.updateTestName(
17+
new Map().set('split', 2).set('preserveTestName', true),
18+
'test_module | test_name'
19+
)
20+
).to.equal('test_module | test_name');
21+
});
2122

22-
it('add partition number to test name when `split` and `partition` are passed', function () {
23-
expect(
24-
TestemOutput.updateTestName(
25-
new Map().set('split', 2).set('partition', 2),
26-
'test_module | test_name'
27-
)
28-
).to.equal('Exam Partition 2 - test_module | test_name');
29-
});
23+
it('does not add partition number to test name when `split` and `partition` are passed', function () {
24+
expect(
25+
TestemOutput.updateTestName(
26+
new Map()
27+
.set('split', 2)
28+
.set('partition', 2)
29+
.set('preserveTestName', true),
30+
'test_module | test_name'
31+
)
32+
).to.equal('test_module | test_name');
33+
});
34+
35+
it('does not add browser number to test name when `loadBalance` and `browser` are passed', function () {
36+
expect(
37+
TestemOutput.updateTestName(
38+
new Map()
39+
.set('loadBalance', 2)
40+
.set('browser', 1)
41+
.set('preserveTestName', true),
42+
'test_module | test_name'
43+
)
44+
).to.equal('test_module | test_name');
45+
});
3046

31-
it('add browser number to test name when `loadBalance` and `browser` are passed', function () {
32-
expect(
33-
TestemOutput.updateTestName(
34-
new Map().set('loadBalance', 2).set('browser', 1),
35-
'test_module | test_name'
36-
)
37-
).to.equal('Browser Id 1 - test_module | test_name');
47+
it('does not add partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function () {
48+
expect(
49+
TestemOutput.updateTestName(
50+
new Map()
51+
.set('split', 2)
52+
.set('partition', 2)
53+
.set('browser', 1)
54+
.set('loadBalance', 2)
55+
.set('preserveTestName', true),
56+
'test_module | test_name'
57+
)
58+
).to.equal('test_module | test_name');
59+
});
3860
});
61+
describe('`preserveTestName` is not passed', () => {
62+
it('adds partition number to test name when `split` is passed', function () {
63+
expect(
64+
TestemOutput.updateTestName(
65+
new Map().set('split', 2),
66+
'test_module | test_name'
67+
)
68+
).to.equal('Exam Partition 1 - test_module | test_name');
69+
});
70+
71+
it('adds partition number to test name when `split` and `partition` are passed', function () {
72+
expect(
73+
TestemOutput.updateTestName(
74+
new Map().set('split', 2).set('partition', 2),
75+
'test_module | test_name'
76+
)
77+
).to.equal('Exam Partition 2 - test_module | test_name');
78+
});
79+
80+
it('adds browser number to test name when `loadBalance` and `browser` are passed', function () {
81+
expect(
82+
TestemOutput.updateTestName(
83+
new Map().set('loadBalance', 2).set('browser', 1),
84+
'test_module | test_name'
85+
)
86+
).to.equal('Browser Id 1 - test_module | test_name');
87+
});
3988

40-
it('add partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function () {
41-
expect(
42-
TestemOutput.updateTestName(
43-
new Map()
44-
.set('split', 2)
45-
.set('partition', 2)
46-
.set('browser', 1)
47-
.set('loadBalance', 2),
48-
'test_module | test_name'
49-
)
50-
).to.equal('Exam Partition 2 - Browser Id 1 - test_module | test_name');
89+
it('adds partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function () {
90+
expect(
91+
TestemOutput.updateTestName(
92+
new Map()
93+
.set('split', 2)
94+
.set('partition', 2)
95+
.set('browser', 1)
96+
.set('loadBalance', 2),
97+
'test_module | test_name'
98+
)
99+
).to.equal('Exam Partition 2 - Browser Id 1 - test_module | test_name');
100+
});
51101
});
52102
});
53103
}

tests/unit/qunit/testem-output-test.js

Lines changed: 89 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,48 +9,102 @@ if (macroCondition(dependencySatisfies('ember-qunit', '*'))) {
99
let { module, test } = importSync('qunit').default;
1010

1111
module('Unit | Qunit | patch-testem-output', () => {
12-
test('add partition number to test name when `split` is passed', function (assert) {
13-
assert.deepEqual(
14-
TestemOutput.updateTestName(
15-
new Map().set('split', 2),
12+
module('`preserveTestName` is passed', () => {
13+
test('does not add partition number to test name when `split` is passed', function (assert) {
14+
assert.deepEqual(
15+
TestemOutput.updateTestName(
16+
new Map().set('split', 2).set('preserveTestName', true),
17+
'test_module | test_name'
18+
),
1619
'test_module | test_name'
17-
),
18-
'Exam Partition 1 - test_module | test_name'
19-
);
20-
});
20+
);
21+
});
2122

22-
test('add partition number to test name when `split` and `partition` are passed', function (assert) {
23-
assert.deepEqual(
24-
TestemOutput.updateTestName(
25-
new Map().set('split', 2).set('partition', 2),
23+
test('does not add partition number to test name when `split` and `partition` are passed', function (assert) {
24+
assert.deepEqual(
25+
TestemOutput.updateTestName(
26+
new Map()
27+
.set('split', 2)
28+
.set('partition', 2)
29+
.set('preserveTestName', true),
30+
'test_module | test_name'
31+
),
2632
'test_module | test_name'
27-
),
28-
'Exam Partition 2 - test_module | test_name'
29-
);
30-
});
33+
);
34+
});
3135

32-
test('add browser number to test name when `loadBalance` and `browser` are passed', function (assert) {
33-
assert.deepEqual(
34-
TestemOutput.updateTestName(
35-
new Map().set('loadBalance', 2).set('browser', 1),
36+
test('does not add browser number to test name when `loadBalance` and `browser` are passed', function (assert) {
37+
assert.deepEqual(
38+
TestemOutput.updateTestName(
39+
new Map()
40+
.set('loadBalance', 2)
41+
.set('browser', 1)
42+
.set('preserveTestName', true),
43+
'test_module | test_name'
44+
),
3645
'test_module | test_name'
37-
),
38-
'Browser Id 1 - test_module | test_name'
39-
);
40-
});
46+
);
47+
});
4148

42-
test('add partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function (assert) {
43-
assert.deepEqual(
44-
TestemOutput.updateTestName(
45-
new Map()
46-
.set('split', 2)
47-
.set('partition', 2)
48-
.set('browser', 1)
49-
.set('loadBalance', 2),
49+
test('does not add partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function (assert) {
50+
assert.deepEqual(
51+
TestemOutput.updateTestName(
52+
new Map()
53+
.set('split', 2)
54+
.set('partition', 2)
55+
.set('browser', 1)
56+
.set('loadBalance', 2)
57+
.set('preserveTestName', true),
58+
'test_module | test_name'
59+
),
5060
'test_module | test_name'
51-
),
52-
'Exam Partition 2 - Browser Id 1 - test_module | test_name'
53-
);
61+
);
62+
});
63+
});
64+
module('`preserveTestName` is not passed', () => {
65+
test('adds partition number to test name when `split` is passed', function (assert) {
66+
assert.deepEqual(
67+
TestemOutput.updateTestName(
68+
new Map().set('split', 2),
69+
'test_module | test_name'
70+
),
71+
'Exam Partition 1 - test_module | test_name'
72+
);
73+
});
74+
75+
test('adds partition number to test name when `split` and `partition` are passed', function (assert) {
76+
assert.deepEqual(
77+
TestemOutput.updateTestName(
78+
new Map().set('split', 2).set('partition', 2),
79+
'test_module | test_name'
80+
),
81+
'Exam Partition 2 - test_module | test_name'
82+
);
83+
});
84+
85+
test('adds browser number to test name when `loadBalance` and `browser` are passed', function (assert) {
86+
assert.deepEqual(
87+
TestemOutput.updateTestName(
88+
new Map().set('loadBalance', 2).set('browser', 1),
89+
'test_module | test_name'
90+
),
91+
'Browser Id 1 - test_module | test_name'
92+
);
93+
});
94+
95+
test('adds partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function (assert) {
96+
assert.deepEqual(
97+
TestemOutput.updateTestName(
98+
new Map()
99+
.set('split', 2)
100+
.set('partition', 2)
101+
.set('browser', 1)
102+
.set('loadBalance', 2),
103+
'test_module | test_name'
104+
),
105+
'Exam Partition 2 - Browser Id 1 - test_module | test_name'
106+
);
107+
});
54108
});
55109
});
56110
}

0 commit comments

Comments
 (0)