오픈 소스 모험: 에피소드 24: Imba 2 및 Cypress
12044 단어 cypressjavascriptimba
첫 번째 단계는
npm install cypress
입니다.우리는 Cypress가
npx cypress open
로 파일을 생성하도록 할 수 있지만, 그러면 제거해야 할 필요가 없는 엄청난 수의 추가 파일이 생성됩니다.그것은 one of common complaints about Cypress - 파일을 한 번만 생성하는 별도의
cypress init
대신 원하든 원하지 않든 상용구 파일을 계속 생성합니다.어쨌든 관련 파일을 수동으로 만들어 봅시다.
cypress.json
기본 구성을 사용할 수 있습니다.
{}
싸이프레스/통합/app.spec.js
Imba 1 버전의 코드를 완전히 재사용했습니다. Imba 언어로 테스트를 작성할 수 있는지 모르겠습니다. 아마 방법이 있을 겁니다.
context("JSON Pretty Printing App", () => {
beforeEach(() => {
cy.visit("http://localhost:3000/")
})
it("does not format JSON automatically", () => {
cy.get("textarea")
.clear()
.type("[1, 2,3,\n 4]")
// makes sure nothing happens
cy.wait(100)
cy.get("textarea")
.invoke("val")
.should("eq", "[1, 2,3,\n 4]")
})
it("formats JSON when you press the button", () => {
cy.get("textarea")
.clear()
.type("[1, 2,3,\n 4]")
cy.get("button").click()
cy.get("textarea")
.invoke("val")
.should("eq", "[1, 2, 3, 4]")
})
it("reports error if JSON is invalid, but clears if text changes", () => {
cy.get("textarea")
.clear()
.type("[1, 2, 3,")
cy.wait(100)
cy.get('.error').should('not.exist')
cy.get("button").click()
cy.get('.error').should('exist')
cy.get("textarea").type("4")
cy.get('.error').should('not.exist')
})
})
패키지.json
npx cypress run
로 테스트를 실행할 수 있지만 더 명확하게 하기 위해 이 항목을 package.json
: "test": "cypress run"
에 추가할 수 있습니다.실행
그러면 다음과 같이 할 수 있습니다.
$ npm test
> test
> cypress run
====================================================================================================
(Run Starting)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 9.5.2 │
│ Browser: Electron 94 (headless) │
│ Node Version: v17.7.1 (/usr/local/Cellar/node/17.7.1/bin/node) │
│ Specs: 1 found (app.spec.js) │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
Running: app.spec.js (1 of 1)
Browserslist: caniuse-lite is outdated. Please run:
npx browserslist@latest --update-db
Why you should do it regularly:
https://github.com/browserslist/browserslist#browsers-data-updating
JSON Pretty Printing App
✓ does not format JSON automatically (634ms)
✓ formats JSON when you press the button (521ms)
✓ reports error if JSON is invalid, but clears if text changes (697ms)
3 passing (3s)
(Results)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Tests: 3 │
│ Passing: 3 │
│ Failing: 0 │
│ Pending: 0 │
│ Skipped: 0 │
│ Screenshots: 0 │
│ Video: true │
│ Duration: 2 seconds │
│ Spec Ran: app.spec.js │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
(Video)
- Started processing: Compressing to 32 CRF
- Finished processing: ~/imba2-json-beautifier/cypress/videos/app.spec.js.mp4 (0 seconds)
====================================================================================================
(Run Finished)
Spec Tests Passing Failing Pending Skipped
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ ✔ app.spec.js 00:02 3 3 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
✔ All specs passed! 00:02 3 3 - - -
소스 코드
소스 코드는 imba2-json-beautifier repository에 있습니다.
할 수도 있습니다see the live version here.
다음에 온다
다음 에피소드에서는 Imba 2에서 약간 더 복잡한 프로젝트를 시도한 다음 그것에 대한 제 생각을 말씀드리겠습니다.
Reference
이 문제에 관하여(오픈 소스 모험: 에피소드 24: Imba 2 및 Cypress), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/taw/open-source-adventures-episode-24-imba-2-and-cypress-p44텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)