javascript - जेस्ट के साथ ESLint का उपयोग कैसे करें
jestjs (6)
केवल
__tests__
फ़ोल्डर के लिए वातावरण जोड़ें
आप अपने
__tests__
फ़ोल्डर में एक
.eslintrc.yml
फ़ाइल जोड़ सकते हैं, जो आपको मूल कॉन्फ़िगरेशन प्रदान करता है:
extends: <relative_path to .eslintrc>
env:
jest: true
यदि आपके पास केवल एक
__tests__
फ़ोल्डर है, तो यह समाधान सबसे अच्छा है क्योंकि यह जेस्ट वातावरण को केवल उसी स्थान पर गुंजाइश करता है जहां इसकी आवश्यकता होती है।
कई परीक्षण फ़ोल्डरों के साथ काम करना
यदि आपके पास अधिक परीक्षण फ़ोल्डर (OPs मामला) है, तो मैं अभी भी उन फ़ाइलों को जोड़ने का सुझाव दूंगा। और अगर आपके पास उन फ़ोल्डरों का टन है, तो उन्हें एक साधारण zsh स्क्रिप्ट के साथ जोड़ सकते हैं:
#!/usr/bin/env zsh
for folder in **/__tests__/ ;do
count=$(($(tr -cd '/' <<< $folder | wc -c)))
echo $folder : $count
cat <<EOF > $folder.eslintrc.yml
extends: $(printf '../%.0s' {1..$count}).eslintrc
env:
jest: true
EOF
done
यह स्क्रिप्ट
__tests__
फ़ोल्डर के लिए दिखेगा और ऊपर दिखाए गए कॉन्फ़िगरेशन के साथ
.eslintrc.yml
फ़ाइल
.eslintrc.yml
।
इस स्क्रिप्ट को आपके माता-पिता
.eslintrc
वाले फ़ोल्डर में लॉन्च किया
.eslintrc
।
मैं जेस्ट टेस्टिंग फ्रेमवर्क के साथ ESLint लिंटर का उपयोग करने का प्रयास कर रहा हूं।
जेस्ट परीक्षण कुछ ग्लोबल्स जैसे जेस्ट के साथ चलता है, जिसके बारे में मुझे लिंटर को बताना होगा;
लेकिन मुश्किल बात निर्देशिका संरचना है, जेस्ट के साथ परीक्षण
__tests__
फ़ोल्डर में स्रोत कोड के साथ एम्बेडेड हैं, इसलिए निर्देशिका संरचना कुछ इस तरह दिखती है:
src
foo
foo.js
__tests__
fooTest.js
bar
bar.js
__tests__
barTest.js
आम तौर पर, मेरे पास एक ही dir के तहत मेरे सभी परीक्षण होंगे, और मैं
.eslintrc
को जोड़ने के लिए सिर्फ एक
.eslintrc
फ़ाइल जोड़ सकता हूं ... लेकिन मैं निश्चित रूप से हर एक
__test__
एक
.eslintrc
फ़ाइल जोड़ना नहीं चाहता।
अभी के लिए, मैंने परीक्षण
.eslintrc
को वैश्विक
.eslintrc
फ़ाइल में
.eslintrc
है, लेकिन इसका मतलब है कि मैं अब गैर-परीक्षण कोड में
jest
को संदर्भित कर सकता हूं, जो "सही" समाधान की तरह प्रतीत नहीं होता है।
क्या निर्देशिका नाम के आधार पर कुछ पैटर्न के आधार पर नियमों को लागू करने के लिए कोई रास्ता नहीं है, या ऐसा कुछ है?
ESLint के 2.0.0 रिलीज के लिए पैटर्न आधारित कॉन्फ़िगरेशन निर्धारित हैं। हालाँकि, अब आपको दो अलग-अलग कार्य करने होंगे (जैसा कि टिप्पणियों में बताया गया है)। परीक्षण के लिए एक और बाकी कोड के लिए एक और दोनों को चलाते हैं, जबकि अलग .eslintrc फाइलें प्रदान करते हैं।
पुनश्च ESLint की अगली रिलीज में आने वाला एक जेस्ट वातावरण है, यह सभी आवश्यक ग्लोबल्स को पंजीकृत करेगा।
अपनी .eslintignore फ़ाइल में निम्न मान जोड़ें:
**/__tests__/
यह __tests__ निर्देशिका और उनके बच्चों के सभी उदाहरणों को अनदेखा करना चाहिए।
आप अपनी परीक्षा फ़ाइल में निम्नानुसार परीक्षा एनवी सेट कर सकते हैं:
/* eslint-env jest */
describe(() => {
/* ... */
})
ज़ाचरी के उत्तर को पूरा करने के लिए, एस्लिंट कॉन्फिगरेशन की सीमा "ओवरराइड्स में विस्तार" के लिए एक समाधान है:
overrides: [
Object.assign(
{
files: [ '**/*.test.js' ],
env: { jest: true },
plugins: [ 'jest' ],
},
require('eslint-plugin-jest').configs.recommended
)
]
https://github.com/eslint/eslint/issues/8813#issuecomment-320448724
मैं समस्या का हल REF
यार्न
eslint-plugin-jest
जोड़ें और अपनी
.eslintrc
फ़ाइल को कॉन्फ़िगर करें
{
"extends": ["airbnb","plugin:jest/recommended"],
}