क्रमिक रूप से जेस्ट टेस्ट कैसे चलाएं?


140

मैं के माध्यम से Jest परीक्षण चला रहा हूँ npm test। जेस्ट डिफ़ॉल्ट रूप से समानांतर में परीक्षण चलाता है। क्या परीक्षणों को क्रमिक रूप से चलाने का कोई तरीका है?

मेरे पास तृतीय-पक्ष कोड को कॉल करने वाले कुछ परीक्षण हैं जो वर्तमान कार्यशील निर्देशिका को बदलने पर निर्भर करते हैं।

जवाबों:


220

CLI विकल्प कमांड चलाकर भी प्रलेखित और सुलभ हैं jest --help

आप विकल्प को आप देख रहे हैं देखेंगे: --runInBand


5
आपका बहुत बहुत धन्यवाद! क्या यह है npm test --runInBand? ऑफटॉपिक: सुनिश्चित नहीं है कि "बैंड" नाम कहां से आता है।
मार्टिन कोनिसक

13
@MartinKonicek npm test -- --runInBandसही है।
Ondrej Slinták

40
दुर्भाग्य से, तथ्य यह है कि निष्पादन आदेश को नियंत्रित नहीं किया जा सकता है, एकीकरण परीक्षणों के लिए जेस्ट को बहुत बेकार बनाता है।
इवान बी।

19
@ इवान आपको एक निश्चित क्रम में चलने वाले अपने परीक्षणों की आवश्यकता है एक गंध है।
निको वान बेले

18
@NicoVanBelle यह पर्याप्त रूप से जटिल स्टेटफुल सिस्टम के सही एंड-टू-एंड टेस्टिंग के लिए भुगतान की जाने वाली कीमत है। मैं विकल्पों के लिए खुला हूं, लेकिन मुझे अभी भी एक ऐसा समाधान देखना है जिसमें या तो स्टैक के प्रमुख हिस्सों को अलग-अलग स्वैप करना शामिल नहीं है या परीक्षणों के बीच निषेधात्मक धीमी डेटाबेस रीसेट करता है। इसका मतलब यह नहीं है कि जेस्ट एक बुरा उपकरण है, इस विशेष प्रकार के परीक्षण के लिए सिर्फ एक गलत है।
इवान बी।

17

मैं अभी भी जेस्ट से परिचित हो रहा हूं, लेकिन ऐसा प्रतीत होता है कि ब्लॉक का वर्णन सिंक्रोनस से चलता है जबकि टेस्ट ब्लॉक अतुल्यकालिक रूप से चलता है। मैं एक बाहरी वर्णन में कई वर्णन ब्लॉक चला रहा हूँ जो कुछ इस तरह दिखता है:

describe
    describe
        test1
        test2

    describe
        test3

इस स्थिति में, test3तब तक नहीं चलता है जब तक test2कि पूर्ण न हो क्योंकि test3वर्णन ब्लॉक में है जो वर्णन ब्लॉक का अनुसरण करता है test2


1
शायद यह अभी भी समानांतर में चलेगा।
LCB

यह भी खूब रही। लापता पर्यावरण चर के साथ पहले व्यवहार की जांच करना संभव बनाता है, फिर चर सेट करें और आगे परीक्षण करें।
एटक

14

यह मेरे लिए काम करता है कि मॉड्यूल परीक्षणों के लिए अलग से क्रमबद्ध चल रहा हो।

1) अलग-अलग फ़ाइलों में परीक्षण रखें, लेकिन spec/testनामकरण में बिना ।

|__testsToRunSequentially.test.js
|__tests
   |__testSuite1.js
   |__testSuite2.js
   |__index.js

2) टेस्ट सूट वाली फाइल भी इस तरह दिखनी चाहिए (testSuite1.js):

export const testSuite1 = () => describe(/*your suite inside*/)

3) उन्हें आयात testToRunSequentially.test.jsऔर साथ चलाने के लिए --runInBand:

import { testSuite1, testSuite2 } from './tests'

describe('sequentially run tests', () => {
   testSuite1()
   testSuite2()
})

जब से आपके पास पहले से ही दो परीक्षण सूट हैं, आपको --runInBand के साथ चलने की आवश्यकता नहीं है। बाल परीक्षण सूट को क्रम से निष्पादित किया जाता है।
RICKY कुमार

10

धारावाहिक परीक्षण धावक का उपयोग करें:

npm install jest-serial-runner --save-dev

Jest.config.js में इसका उपयोग करने के लिए jest सेट करें:

module.exports = {
   ...,
   runner: 'jest-serial-runner'
};

आप इसे परीक्षण के सबसेट पर लागू करने के लिए प्रोजेक्ट सुविधा का उपयोग कर सकते हैं। Https://jestjs.io/docs/en/configuration#projects-arraystring--projectconfig देखें


आप परीक्षण के केवल सबसेट के लिए उपयोग करने के लिए प्रोजेक्ट सुविधा का उपयोग कर सकते हैं। , किस तरह?
नौ

1
@Nux जेस्ट में 'प्रोजेक्ट्स' कॉन्फिगरेशन सेटिंग आपको अन्य कॉन्फ़िगरेशन सेटिंग्स को चुनिंदा परीक्षणों के विशिष्ट सेटों पर लागू करने देता है। डॉक्स और उदाहरण के लिंक के साथ अद्यतन उत्तर।
जोकिम लूस

4

जैसा कि https://github.com/facebook/jest/issues/6194#issuecomment-419837314 से कॉपी किया गया है

test.spec.js

import { signuptests } from './signup'
import { logintests } from './login'

describe('Signup', signuptests)
describe('Login', logintests)

signup.js

export const signuptests = () => {
     it('Should have login elements', () => {});
     it('Should Signup', () => {}});
}

login.js

export const logintests = () => {
    it('Should Login', () => {}});
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.