คำสั่งแบบเต็มเพื่อรันการทดสอบ Jest เดียว
คำสั่ง:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:
- ของ windows:
node_modules\jest\bin\jest.js
- อื่น ๆ :
node_modules/.bin/jest
-i <you-test-file>
: พา ธ ไปยังไฟล์ด้วยการทดสอบ ( js
หรือts
)
-c <jest-config>
: พา ธ ไปยังไฟล์ Jest config (JSON) แยกต่างหากหากคุณเก็บการกำหนดค่า Jest ไว้ในนั้นpackage.json
คุณไม่จำเป็นต้องระบุพารามิเตอร์นี้ (Jest จะค้นหาได้โดยไม่ต้องใช้ตัวช่วย)
-t <the-name-of-test-block>
: ที่จริงมันเป็นชื่อ (พารามิเตอร์แรก) ของdescribe(...)
, it(...)
หรือtest(...)
บล็อก
ตัวอย่าง:
describe("math tests", () => {
it("1 + 1 = 2", () => {
expect(1 + 1).toBe(2);
});
it("-1 * -1 !== -1", () => {
expect(-1 * -1).not.toBe(-1);
});
});
ดังนั้นคำสั่ง
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
จะทดสอบit("1 + 1 = 2", ...)
แต่ถ้าคุณเปลี่ยน-t
พารามิเตอร์เป็น"math tests"
แล้วมันจะเรียกใช้การทดสอบทั้งสองจากdescribe("math tests",...)
บล็อก
หมายเหตุ:
- สำหรับ Windows แทนที่ด้วย
node_modules/.bin/jest
node_modules\jest\bin\jest.js
- วิธีนี้ช่วยให้คุณสามารถดีบักสคริปต์ที่ทำงานอยู่ เพื่อเปิดใช้งานการดีบักเพิ่ม
'--inspect-brk'
พารามิเตอร์ให้กับคำสั่ง
รันการทดสอบ Jest เดียวผ่านสคริปต์ NPM ใน 'package.json'
มีการติดตั้งล้อเล่นคุณสามารถลดความซับซ้อนของไวยากรณ์ของคำสั่งนี้ (เหนือ) โดยใช้สคริปต์ NPM ในการ"package.json"
เพิ่มสคริปต์ใหม่ใน"scripts"
ส่วน:
"scripts": {
"test:math": "jest -i test/my-tests.js -t \"math tests\"",
}
ในกรณีนี้เราใช้นามแฝง'jest'
แทนการเขียนเส้นทางแบบเต็มไปยังมัน นอกจากนี้เราไม่ได้ระบุพา ธ ของไฟล์กำหนดค่าเนื่องจากเราสามารถวางไว้ในช่องได้"package.json"
เช่นกันและ Jest จะตรวจสอบตามค่าเริ่มต้น ตอนนี้คุณสามารถเรียกใช้คำสั่ง:
npm run test:math
และ"math tests"
บล็อกที่มีการทดสอบสองครั้งจะถูกดำเนินการ หรือแน่นอนคุณสามารถระบุการทดสอบหนึ่งอย่างโดยใช้ชื่อ
ตัวเลือกอื่นจะดึง<the-name-of-test-block>
พารามิเตอร์ภายนอก"test:math"
สคริปต์และส่งผ่านจากคำสั่ง NPM:
package.json:
"scripts": {
"test:math": "jest -i test/my-tests.js -t",
}
คำสั่ง:
npm run test:math "math tests"
ตอนนี้คุณสามารถจัดการชื่อของการทดสอบรันด้วยคำสั่งที่สั้นกว่ามาก
หมายเหตุ:
'jest'
คำสั่งจะทำงานร่วมกับสคริปต์ NPM เพราะ
npmสร้าง"./node_modules/.bin"
รายการแรกในPATH
ตัวแปรสภาพแวดล้อมเมื่อเรียกใช้สคริปต์วงจรชีวิตใด ๆ ดังนั้นสิ่งนี้จะทำงานได้ดีแม้ว่าโปรแกรมของคุณจะไม่ได้ติดตั้งทั่วโลก ( บล็อก NPM )
- วิธีนี้ดูเหมือนจะไม่อนุญาตให้มีการแก้จุดบกพร่องเพราะเจ็ทจะดำเนินการผ่านทางไบนารี / CLI
node
ไม่ผ่าน
เรียกใช้การทดสอบ Jest ที่เลือกในรหัส Visual Studio
หากคุณใช้รหัส Visual Studio คุณสามารถใช้ประโยชน์จากมันและเรียกใช้การทดสอบที่เลือกในปัจจุบัน (ในตัวแก้ไขรหัส) โดยการกดF5
ปุ่ม ในการทำเช่นนี้เราจะต้องสร้างบล็อกการกำหนดค่าการเปิดตัวใหม่ใน".vscode/launch.json"
ไฟล์ ในการกำหนดค่านั้นเราจะใช้ตัวแปรที่กำหนดไว้ล่วงหน้าซึ่งจะถูกแทนที่ด้วยค่าที่เหมาะสม (น่าเสียดายที่ไม่เสมอไป ) เมื่อใช้งาน เรามีความสนใจเฉพาะในสิ่งเหล่านี้:
${relativeFile}
- ไฟล์ที่เปิดปัจจุบันเทียบกับ
${workspaceFolder}
${selectedText}
- ข้อความที่เลือกในปัจจุบันในไฟล์ที่ใช้งานอยู่
แต่ก่อนที่จะเขียนการกำหนดค่าเริ่มต้นเราควรเพิ่ม'test'
สคริปต์ในของเรา'package.json'
(ถ้าเรายังไม่มี)
package.json:
"scripts": {
"test": "jest"
}
จากนั้นเราสามารถใช้มันในการกำหนดค่าเริ่มต้นของเรา
เรียกใช้การกำหนดค่า:
{
"type": "node",
"request": "launch",
"name": "Run selected Jest test",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"test"
],
"args": [
"--",
"-i",
"${relativeFile}",
"-t",
"${selectedText}"
],
"console": "integratedTerminal",
}
จริง ๆ แล้วมันเหมือนกับคำสั่งที่อธิบายไว้ก่อนหน้าในคำตอบนี้ ตอนนี้ทุกอย่างพร้อมเราสามารถเรียกใช้การทดสอบใด ๆ ที่เราต้องการโดยไม่ต้องเขียนพารามิเตอร์คำสั่งด้วยตนเอง
นี่คือทั้งหมดที่คุณต้องทำ:
- เลือกการกำหนดค่าเริ่มต้นที่สร้างขึ้นในแผงการดีบัก:
- เปิดไฟล์ที่มีการทดสอบในเครื่องมือแก้ไขโค้ดและเลือกชื่อการทดสอบที่คุณต้องการทดสอบ (โดยไม่ใส่เครื่องหมายอัญประกาศ):
- กด
'F5'
ปุ่ม
และ voila!
ตอนนี้เพื่อรันการทดสอบใด ๆ ที่คุณต้องการเปิดในตัวแก้ไขเลือกชื่อแล้วกด F5
น่าเสียดายที่มันไม่ได้เป็น "voila" บนเครื่อง Windows เพราะมันใช้แทน (ใครจะรู้สาเหตุ) ${relativeFile}
ตัวแปรที่มีพา ธ ที่มีเครื่องหมายแบ็กสแลชและเจสต์จะไม่เข้าใจเส้นทางดังกล่าว
หมายเหตุ:
- ในการรันภายใต้ตัวดีบั๊กอย่าลืมเพิ่ม
'--inspect-brk'
พารามิเตอร์
'package.json'
ในตัวอย่างการกำหนดค่านี้เราไม่ได้มีการกำหนดค่าพารามิเตอร์เจ็สมมติว่ามันรวมอยู่ใน