• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Unit testy komponentów Reactowych w Cypress [React]

Object Storage Arubacloud
+1 głos
173 wizyt
pytanie zadane 23 maja 2022 w JavaScript przez Oskar Szkurłat Bywalec (2,780 p.)
edycja 23 maja 2022 przez Oskar Szkurłat

Cześć, mam problem z konfiguracją Cypress. Chciałbym mieć, tak że w aplikacji mam dwa rodzaje "unit" testów (JEST do testów funkcyjnych, a Cypress do unit testów Reactowych komponentów). Końcówkę `.test` zarezerwuję dla JEST, a `.spec` dla Cypress. End-To-End w oparciu o Cypress.

No i to póki co działa, tylko że nie chciałbym trzymać testów jednostkowych w `cypress/integration`, tylko przy testowanych komponentach, np. `src/components/common/TablePattern/`. Natomiast testy End-To-End mogą zostać sobie w `cypress/integration`. Napisałem już pierwszy e2e test i jest on widoczny (jest w `integration`) i działa - `1-login-module / login-module.spec.ts`.

Cypress

Problem jednak jest taki, że to moja pierwsza styczność z Cypress w życiu, więc zarówno z jego konfiguracją. Ustawiłem sobie `cypress.json` w następujący sposób:

{
  "baseUrl": "http://localhost:3000",
  "testFiles": "**/*.spec.{js,ts,jsx,tsx}",
  "component": {
    "componentFolder": "src/components",
    "testFiles": ".**/.*spec.tsx",
  }
}

Pluginy zostały skonfigurowane dla CRA. Tu początkowo występował problem cypress Error: Cannot find module 'react-scripts/package.json' , ale po zainstalowaniu "react-scripts": "^5.0.1" znikł.

// cypress/plugins/index.js

const injectDevServer = require('@cypress/react/plugins/react-scripts')

module.exports = (on, config) => {
  injectDevServer(on, config)

  return config
}

No i niestety nie widzi mi testów komponentów, a starałem się to ustawić zgodnie z dokumentacją.

Folder z testem

Aplikacja tworzona była z pomocą CRA, a potem była potraktowana `eject` (dla obsługi .less). Webpack nie był ruszany poza dodaniem obsługi .less i .module.less

"@cypress/react": "^5.12.5",
"@cypress/webpack-dev-server": "^1.8.4",
"cypress": "^9.6.1",

Czy ktoś jest w stanie mi wskazać, co zrobiłem nie tak? :( Z góry dziękuję

1 odpowiedź

+1 głos
odpowiedź 23 maja 2022 przez Oskar Szkurłat Bywalec (2,780 p.)

Pozwolę sobie sam odpowiedzieć - jest różnica między npx cypress open, a npx cypress open-ct. CT służy do testów komponentów :_: dlatego nie widziałem

    "jest": "node scripts/test.js --testMatch '**/*.test.{js,jsx,ts,tsx}'",
    "test-func": "node scripts/test.js --testMatch '**/*.test.{js,jsx,ts,tsx}' --watchAll",
    "test-unit": "npx cypress run-ct",
    "test-e2e": "npx cypress run",
    "cy:open": "npx cypress open",
    "cy:ct": "npx cypress open-ct",

Za to teraz problem, że webpack v5 nie działa z cypress open-ct, eh. Utyka na Your tests are loading :(

Podobne pytania

0 głosów
2 odpowiedzi 216 wizyt
pytanie zadane 26 kwietnia 2022 w JavaScript przez Bakkit Dyskutant (7,600 p.)
+1 głos
1 odpowiedź 179 wizyt
+2 głosów
0 odpowiedzi 201 wizyt
pytanie zadane 3 grudnia 2021 w JavaScript przez lzrd Nowicjusz (160 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...