如何 运行 测试与 cypress 中更改的文件相关的内容
How to run tests related to changed files in cypress
我正在使用 cypress 来设置 E2E 测试。
但我遇到了一些麻烦,因为每次我实现一个新功能或重构一些代码时,我都需要 运行 我所有的测试,看看我的修改是否没有破坏我的应用程序.
在 Jest 中,我们有标志 --findRelatedTests
,运行 只修改了相关的测试文件。
我想知道是否有办法在柏树中做同样的事情。
如果你在本地尝试,那么
1、如果要跳过特定的测试组或测试用例,一种方法是在上下文或it块的末尾添加.skip。例如,context.skip() 或 it.skip().
context.skip('Test group', () => {
// This whole test group will be skipped
it('Test case 1', () => {
// This test case will not run because test group is skipped
});
});
context('Test group', () => {
it.skip('test case1', () => {
// Test case one will be skipped
});
it('test case2', () => {
// Detail for test case two
// This will execute
});
});
- 运行 Specific/modified 仅测试
您可以在上下文末尾添加 .only 或它块,例如 context.only() 或 it.only().
// Only 1st test group will run
context.only('test group1', () => {
it('test case', () => {
// Test case one will run
});
it('test case2', () => {
// Test case two will run
});
});
// The 2nd test group will not run
context('test group2', () => {
it('test case3', () => {
// Test case three will be skipped
});
it('test cas4', () => {
// Test case three will be skipped
});
});
context('test group', () => {
it.only('test case1', () => {
// Test case one will run
});
it('test case2', () => {
// Test case two will be skipped
});
});
- 运行 使用 cypress.json 有条件地测试
运行有条件的测试是使用cypress.json文件,如果要运行特定的测试文件。
如果你只想运行测试test.spec.js文件,你可以只添加文件路径到cypress.json.
中的测试文件
{
"testFiles": "**/test.spec.js"
}
运行多个测试文件
{
"testFiles": ["**/test-1.spec.js", "**/test-2.spec.js"]
}
忽略测试中的特定测试 运行s
{
"ignoreTestFiles": "**/*.ignore.js"
}
运行 使用命令行有条件地测试
npx cypress run --spec "cypress/integration/test.spec.js"
到 运行 特定文件夹中文件名以 .spec.js
结尾的所有测试
npx cypress run --spec "cypress/integration/testgroup-directory-name/*.spec.js"
如果您正在使用 CI/CD 那么这会对您有所帮助,您可以得到一个想法。
Faster test execution with cypress-grep
您是否在寻找插件 cypress-watch-and-reload?
// cypress.json
{
"cypress-watch-and-reload": {
"watch": ["page/*", "src/*.js"] // watch source and page-object (helper) files
}
}
YouTube - Re-run Cypress Tests When Application Files Change
我正在使用 cypress 来设置 E2E 测试。
但我遇到了一些麻烦,因为每次我实现一个新功能或重构一些代码时,我都需要 运行 我所有的测试,看看我的修改是否没有破坏我的应用程序.
在 Jest 中,我们有标志 --findRelatedTests
,运行 只修改了相关的测试文件。
我想知道是否有办法在柏树中做同样的事情。
如果你在本地尝试,那么 1、如果要跳过特定的测试组或测试用例,一种方法是在上下文或it块的末尾添加.skip。例如,context.skip() 或 it.skip().
context.skip('Test group', () => {
// This whole test group will be skipped
it('Test case 1', () => {
// This test case will not run because test group is skipped
});
});
context('Test group', () => {
it.skip('test case1', () => {
// Test case one will be skipped
});
it('test case2', () => {
// Detail for test case two
// This will execute
});
});
- 运行 Specific/modified 仅测试 您可以在上下文末尾添加 .only 或它块,例如 context.only() 或 it.only().
// Only 1st test group will run
context.only('test group1', () => {
it('test case', () => {
// Test case one will run
});
it('test case2', () => {
// Test case two will run
});
});
// The 2nd test group will not run
context('test group2', () => {
it('test case3', () => {
// Test case three will be skipped
});
it('test cas4', () => {
// Test case three will be skipped
});
});
context('test group', () => {
it.only('test case1', () => {
// Test case one will run
});
it('test case2', () => {
// Test case two will be skipped
});
});
- 运行 使用 cypress.json 有条件地测试 运行有条件的测试是使用cypress.json文件,如果要运行特定的测试文件。
如果你只想运行测试test.spec.js文件,你可以只添加文件路径到cypress.json.
中的测试文件{
"testFiles": "**/test.spec.js"
}
运行多个测试文件
{
"testFiles": ["**/test-1.spec.js", "**/test-2.spec.js"]
}
忽略测试中的特定测试 运行s
{
"ignoreTestFiles": "**/*.ignore.js"
}
运行 使用命令行有条件地测试
npx cypress run --spec "cypress/integration/test.spec.js"
到 运行 特定文件夹中文件名以 .spec.js
结尾的所有测试npx cypress run --spec "cypress/integration/testgroup-directory-name/*.spec.js"
如果您正在使用 CI/CD 那么这会对您有所帮助,您可以得到一个想法。 Faster test execution with cypress-grep
您是否在寻找插件 cypress-watch-and-reload?
// cypress.json
{
"cypress-watch-and-reload": {
"watch": ["page/*", "src/*.js"] // watch source and page-object (helper) files
}
}
YouTube - Re-run Cypress Tests When Application Files Change