-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Invite to pull request Alegria #14
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ldasilvaNZ11, o .env.example
deve sim ser versionado, visto que não contém dados sensíveis, é só um exemplo, como o nome indica, de qual estrutura deve ser usada no .env
, esse sim não versionado.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Parabens pelo belo trabalho! Conseguiste implementar varios testes de APIs muito bons 👏 Eu fiz algumas observações para levares em consideração, e onde eu achei que talvez precisasse de um feedback mais expert, eu marquei o @wlsf82 para ver o que ele sugeriria naquela situação. Obrigado aprendi bastante revisando o teu codigo, e espero que as sugestões te ajudem nessa jornada! Abraço
@@ -0,0 +1,100 @@ | |||
/// <reference types="cypress" /> | |||
|
|||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Essa linha tbm pode ser removida pela mesma razão anterior.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Visto que você não implementou a sugestão, essa conversa não deveria ter sido resolvida.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@guilhermealegria, parabéns pela resolução dos exercícios. 👏🏻
Além dos comentários do @ldasilvaNZ11, deixei alguns também, os quais creio que lhe ajudarão a melhorar o design dos teste.
Lembre-se de só enviar novas mudanças para revisão após o encontro de 19/10/2024.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Este arquivo faz parte da estrutura padrão do Cypress @ldasilvaNZ11.
Ele é o arquivo principal dos comandos customizados, onde plugins externos são importados e também comandos customizados (cypress/support/commands.j
).
Ou seja, tudo certo!
Eu só removeria esse monte de comentários, pra dar uma limpada no arquivo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Parabéns por mais uma rodada de exercícios @guilhermealegria. 👏🏻
Deixei uma séria de comentários os quias espero que lhe ajudem a melhorar suas habilidades de design de testes.
Espero que tenhas gostado da Test Design Masterclass e nos vemos no último encontro.
module.exports = defineConfig({ | ||
e2e: { | ||
env:{ | ||
grepFilterSpecs: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vejo que usou o @cypress/grep
para a execução dos teste de GUI e API separadamente.
No entanto, uma maneira mais simples seria informar ao Cypress quais arquivos (ou pastas) seriam executados, usando a opção --spec
.
Exemplo:
cypress run --spec 'cypress/e2e/gui/*.cy.js'
}, | ||
fixturesFolder: false, | ||
setupNodeEvents(on, config) { | ||
require('@cypress/grep/src/plugin')(config); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ao fazer o que sugeri acima, tal lib nem mesmo seria necessária, tornando o projeto mais simples, que é o que procuramos quando se fala de um bom design: simplicidade.
@@ -0,0 +1,100 @@ | |||
/// <reference types="cypress" /> | |||
|
|||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Visto que você não implementou a sugestão, essa conversa não deveria ter sido resolvida.
e2e: { | ||
env:{ | ||
grepFilterSpecs: true, | ||
baseUrl: 'http://localhost:3001/' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A propriedade baseUrl
deve apontar para a URL do frontend, não da API.
Para a URL da API, você pode definir uma env
.
Exemplo:
env: {
API_URL: 'http://localhost:3001'
}
E a baseUrl
deve apontar para http://localhost:3000
.
|
||
context('Request all customers', () => { | ||
beforeEach('Get request', () => { | ||
cy.request(Cypress.env('baseUrl')).as('customers') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
baseUrl
não é uma env
, portanto não é assim que acessa-se a mesma.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Veja o comentário anterior.
cy.visit(Cypress.env('baseUrl')) | ||
cy.setCookie('cookieConsent', value) | ||
}) | ||
}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
}) | |
}) | |
Recomenda-se deixar uma linha em branco ao final de cada arquivo, para evitar que ferramentas como o GitHub exibam o ícone de No newline at end of file
.
Isso é uma boa prática e convenção a ser seguida.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Algum motivo por não ter removido os comentários?
// *********************************************************** | ||
|
||
// Import commands.js using ES2015 syntax: | ||
import 'cypress-each' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Se tivesse implementado solução mais simples para os testes, tal lib não seria necessária.
@@ -6,7 +6,9 @@ | |||
"install:frontend": "cd frontend && npm install", | |||
"install:backend": "cd backend && npm install", | |||
"start:frontend": "cd frontend && npm start", | |||
"start:server": "cd backend && npm start" | |||
"start:server": "cd backend && npm start", | |||
"cy:api": "npx cypress run --env grepTags=api", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Em vez de usar o @cypress/grep
, você poderia ter feito algo como seguinte:
cypress run --spec 'cypress/e2e/api/*.cy.js'
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
O mesmo vale para o script abaixo.
@@ -30,5 +33,12 @@ | |||
"last 1 firefox version", | |||
"last 1 safari version" | |||
] | |||
}, | |||
"dependencies": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Não resolva conversas sem implementar a sugestão, ou sem justificar a não-implementação.
To run test in project npx cypress open --env configEnv=api or npx cypress run --env configEnv=api.
The config in setupNodeEvents follow for check de problem with baseUrl.