如果某些条件为真/假,我可以以某种方式跳过量角器测试用例吗? 尝试使用
pending('skipped');
expect(true).toBe(true);
但是将其标记为失败
更新 查找如何将测试用例添加到“待定” 准备中
var SpecReporter = require('jasmine-spec-reporter').SpecReporter;
SpecReporter.prototype.specDone = function (spec) {
this.metrics.stopSpec(spec);
var pending = false;
for(var i = 0; i < spec.failedExpectations.length; i++) {
if ( spec.failedExpectations[i].message.toLowerCase().indexOf('pending') >= 0) pending = true;
}
if (spec.status === 'pending' || pending) {
this.metrics.pendingSpecs++;
this.display.pending(spec);
} else if (spec.status === 'passed') {
this.metrics.successfulSpecs++;
this.display.successful(spec);
} else if (spec.status === 'failed') {
this.metrics.failedSpecs++;
this.display.failed(spec);
}
};
然后在测试用例上,您可以使用pending();
it(test some elements, function(){
if(some conditions) {pending()}
} else {test elements}
随后,您可以使用待处理的标签来操作测试报告。
也许不是最好的例子,但现在对我有用。
答案 0 :(得分:1)
我认为您最好的选择是创建一个需要特定参数的序列,例如:
export class Sequence {
static performAfterCondition(conditionToMeet) {
if (conditionToMeet){
describe(`conditionTrueTests`, () => {
it(`Test 1`, async () => {
expect(await true).toBe(true);
});
it(`Test 2`, async () => {
expect(await true).toBe(true);
});
});
}else{
describe(`conditionFalseTests`, () => {
it(`Test 1`, async () => {
expect(await false).toBe(false);
});
it(`Test 2`, async () => {
expect(await false).toBe(false);
});
});
}
}
}
并在您的规范文件中调用它,例如:
describe('calltests', () => {
Sequence.performAfterCondition(condition);
});