Wou*_*ouX 20 automated-tests cypress
当我按下“运行所有规格”按钮或使用运行赛普拉斯中所有文件的运行命令时,它会按字母顺序运行所有测试文件,所以我不想要那样。
我想用我自己的规则对它们进行排序。
假设我在聊天应用程序测试中有 3 个步骤。
我想测试每一步,而不是相互绑定。我的意思是,测试自己的功能之一。我做的是如下
chat_app_connect.spec.js
describe('Server Connecting Test', () => {
it('Visit Server page', () => {
cy.visit('https://chat.page..');
});
it('Check welcome messages', () => {
cy.contains('Live Support');
cy.contains('Hello, Stranger');
});
it('Check URL and status of circle', () => {
// URL
cy.url()
.should('include', '/hello');
// Status Circle
cy.get('circle')
.should('have.class', 'positive');
});
});
Run Code Online (Sandbox Code Playgroud)
chat_connect.spec.js
import './chat_app_connect.spec.js';
describe('Chat Connecting Test', () => {
it('Type customer name', () => {
cy.get('input')
.clear()
.type('E2E Test');
});
it('Click to the submit button', () => {
cy.get('.submit-button')
.click();
});
it('Check URL and status of circle', () => {
// URL
cy.url()
.should('equal', 'https://client.dev.octopus.chat/');
// Status Circle
cy.get('circle', { timeout: 5000 })
.should('have.class', 'positive');
});
});
Run Code Online (Sandbox Code Playgroud)
chatting.spec.js
import './chat_connect.spec.js';
describe('Chatting Tests', () => {
it('Type a test message then press Enter and check the message if it sent', () => {
// Type
cy.get('#chat-message')
.clear()
.type('Hey I\'m a test message{enter}');
// Check the message
cy.get('.message-list')
.should('contain', 'Hey I\'m a test message');
});
});
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,每个测试都是相互关联的,这意味着当我尝试仅测试 catting 功能时,它会调用每个测试,并且将测试整个测试。
我不知道这是不是正确的方法。
在这种情况下我应该怎么做或者这是一种可以接受的方式
Jea*_*ure 31
我有一个特殊的情况,我启动一个应用程序的多个实例,而不是使用固定装置或测试数据,我只是将用户反馈集成为从转发登录开始的赛普拉斯测试。
无论如何,我使用testFiles配置来cypress.json设置规范文件运行顺序:
{
"baseUrl": "http://localhost:5000",
"testFiles": [
"login/*.js",
"leads/new-lead.spec.js",
"leads/leads-list.spec.js",
"leads/lead-detail.spec.js",
"leads/lead-modify.spec.js",
//...
]
}
Run Code Online (Sandbox Code Playgroud)
不需要文件编号:D
alc*_*eoh 10
最简单的解决方案是最有可能为所有测试文件添加前缀,例如:
01-chat_app_connect.spec.js02-chat_connect.spec.js等等。
Cypress 将按字母顺序获取这些文件,您可以通过使用数字作为前缀来“欺骗”您想要的行为。
Cypress 并不是故意让您这样做的,并且有充分的理由:
以下是有关此问题的更详细的相关讨论: https://github.com/cypress-io/cypress/issues/390
但是,如果您决定无论如何都要这样做,您可以通过在规范名称前加上一个数字来实现:
01-some-spec.js
02-alphabetically-first-spec.js
03-some-other-spec.js
Run Code Online (Sandbox Code Playgroud)
让·莱斯库尔的回答是救星。我们需要根据优先级运行测试,而不需要一堆重复的测试或符号链接。以下内容在我们的默认 cypress 配置文件中对我们有用:
"integrationFolder":"cypress/integration",
"testFiles": [
"high_priority_specs/**/*.js",
"medium_priority_specs/**/*.js",
"low_priority_specs/**/*.js"
]
Run Code Online (Sandbox Code Playgroud)
为了更改优先级,我们使用了 3 个配置文件,这些文件是通过 cypress --configFile 参数加载的。为了运行更高优先级的测试(仅限冒烟测试),我们使用了以下命令:
"integrationFolder":"cypress/integration",
"testFiles": [
"high_priority_specs/**/*.js"
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10949 次 |
| 最近记录: |