2017-07-28 23 views
5

मैं नया हूँ तो यह शायद एक तुच्छ सवाल हो सकता है, लेकिन अभी तक का उत्तर नहीं मिलता नहीं कर सकता:मोचा: मोचा के लिए अलग प्रक्रिया पर्यावरण के अंतर्गत कई जे एस परीक्षण फ़ाइलों को चलाने के लिए कैसे

मैं के साथ एक सरल NodeJS परियोजना है package.json नीचे

{ 
    "name": "test", 
    "version": "1.0.0", 
    "description": "test", 
    "main": "index.js", 
    "scripts": { 
    "test": "mocha" 
    }, 
    "author": "davide talesco", 
    "license": "ISC", 
    "devDependencies": { 
    "chai": "^4.0.2", 
    "mocha": "^3.4.2" 
    } 
} 

और निम्नलिखित 2 परीक्षण फ़ोल्डर के अंतर्गत परीक्षण फ़ाइलें:

test1.js

process.env.NODE_ENV = 'test'; 

var chai = require('chai'); 
var should = chai.should(); 

describe('Test setProp', function(){ 
    it('env variable should be test', function(done){ 
    process.env.NODE_ENV.should.be.equal('test'); 
    return done(); 
    }); 
}); 

test2.js

process.env.NODE_ENV = 'prod'; 

var chai = require('chai'); 
var should = chai.should(); 

describe('Test setProp', function(){ 
    it('env variable should be prod', function(done){ 
    process.env.NODE_ENV.should.be.equal('prod'); 
    return done(); 
    }); 
}); 

जब मैं NPM परीक्षण चलाने पहला परीक्षण सफलतापूर्वक दूसरा, जबकि पूरा विफल रहता है के रूप में प्रति

ie-macp-davidt:crap davide_talesco$ npm test 

> [email protected] test /Users/davide_talesco/development/crap 
> mocha 



    Test setProp 
    1) env variable should be test 

    Test setProp 
    ✓ env variable should be prod 


    1 passing (16ms) 
    1 failing 

    1) Test setProp env variable should be test: 

     AssertionError: expected 'prod' to equal 'test' 
     + expected - actual 

     -prod 
     +test 

     at Context.<anonymous> (test/test1.js:11:36) 



npm ERR! Test failed. See above for more details. 

नीचे अपने बहुत स्पष्ट है कि परीक्षण के अंतर्गत चल रहे हैं एक ही प्रक्रिया ... मेरा प्रश्न है: मैं उन्हें पूरी तरह से अलग प्रक्रियाओं के तहत कैसे चला सकता हूं ताकि प्रत्येक व्यक्ति अपना पर्यावरण स्थापित कर सके?

find ./test -name '*.js' -exec mocha \{} \;

मैं स्थानीय mocha binaries का उपयोग करने के मुसीबतों से बचने के लिए सलाह देते हैं:

धन्यवाद,

डेविड

उत्तर

2

सबसे सरल तरीकों में से एक का उपयोग करने के यूनिक्स find आदेश है यदि यह वैश्विक स्तर पर स्थापित नहीं है:

find ./test -name '*.js' -exec ./node_modules/.bin/mocha \{} \;

आप package.json है कि जोड़ना चाहते हैं, तो कृपया ध्यान दें कि बैकस्लैश भाग निकले जाना चाहिए:

... 
"scripts": { 
    "test": "find ./test -name '*.js' -exec ./node_modules/.bin/mocha \\{} \\;" 
}, 
... 
संबंधित मुद्दे