跳过测试文件 Jest 中的一项测试
Posted
技术标签:
【中文标题】跳过测试文件 Jest 中的一项测试【英文标题】:Skip one test in test file Jest 【发布时间】:2018-06-15 22:51:21 【问题描述】:我正在使用 Jest 框架并有一个测试套件。我想关闭/跳过我的一项测试。
谷歌搜索文档没有给我答案。
您知道要检查的答案或信息来源吗?
【问题讨论】:
只是注释掉? 这不是处理您想要跳过的测试的正确方法。至少这种行为没有通过我们团队的软件质量检查。 (尽管我有一个遗留代码中的注释测试示例) 对于任何想以编程方式跳过测试的人:不幸的是,Jest 开发人员对此有点固执,并没有看到这样一个非常有用的功能的价值。见github.com/facebook/jest/issues/8604 和github.com/facebook/jest/issues/7245 【参考方案1】:我在这里找到了答案
https://devhints.io/jest
test('it is raining', () =>
expect(inchesOfRain()).toBeGreaterThan(0);
);
test.skip('it is not snowing', () =>
expect(inchesOfSnow()).toBe(0);
);
Link on off doc
【讨论】:
...和test.only()
describe.skip() 用于测试套装【参考方案2】:
您还可以排除test
或describe
,方法是在它们前面加上x
。
个别测试
describe('All Test in this describe will be run', () =>
xtest('Except this test- This test will not be run', () =>
expect(true).toBe(true);
);
test('This test will be run', () =>
expect(true).toBe(true);
);
);
描述中的多个测试
xdescribe('All tests in this describe will be skipped', () =>
test('This test will be skipped', () =>
expect(true).toBe(true);
);
test('This test will be skipped', () =>
expect(true).toBe(true);
);
);
【讨论】:
谢谢,我觉得这个解决方案简单实用。【参考方案3】:跳过测试
如果您想跳过 Jest 中的测试,可以使用test.skip:
test.skip(name, fn)
也属于以下别名:
it.skip(name, fn)
或
xit(name, fn)
或
xtest(name, fn)
跳过测试套件
此外,如果您想跳过测试套件,可以使用describe.skip:
describe.skip(name, fn)
也属于以下别名:
xdescribe(name, fn)
【讨论】:
【参考方案4】:只运行一个测试子集:
如果您在一个包含许多测试的测试套件中调试/编写/扩展一个测试,您只需要运行您正在处理的那个,但将.skip
添加到每个人可能会很痛苦。
所以.only
来救援了。您可以选择在测试期间使用 .only
标志跳过其他人,这对于需要添加或调试测试的大型套件非常有用。
describe('some amazing test suite', () =>
test('number one', () =>
// some testing logic
test('number two', () =>
// some testing logic
...
test('number x', () =>
// some testing logic
test.only('new test or the one needs debugging', () =>
// Now when you run this suite only this test will run
// so now you are free to debug or work on business logic
// instead to wait for other tests to pass every time you run jest
// You can remove `.only` flag once you're done!
如果您想同时运行多个测试,还可以将.only
添加到测试套件或文件中的多个测试!
【讨论】:
加法:.only
也适用于it()
,就像.skip
一样以上是关于跳过测试文件 Jest 中的一项测试的主要内容,如果未能解决你的问题,请参考以下文章