mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 06:07:21 +01:00
Fix setting of environment variables in gulp test tasks in Windows
See this stackoverflow link for why this is necessary http://stackoverflow.com/questions/27084392/code-coverage-for-mocha-in-windows-7/27193866#27193866
This commit is contained in:
committed by
Blade Barringer
parent
fc8c377eab
commit
5b740b1a11
@@ -87,14 +87,14 @@
|
|||||||
"test": "gulp test",
|
"test": "gulp test",
|
||||||
"test:api-v2:unit": "mocha test/server_side",
|
"test:api-v2:unit": "mocha test/server_side",
|
||||||
"test:api-v2:integration": "mocha test/api/v2 --recursive",
|
"test:api-v2:integration": "mocha test/api/v2 --recursive",
|
||||||
"test:api-legacy": "istanbul cover -i \"website/src/**\" --dir coverage/api mocha test/api-legacy",
|
"test:api-legacy": "istanbul cover -i \"website/src/**\" --dir coverage/api ./node_modules/mocha/bin/_mocha test/api-legacy",
|
||||||
"test:common": "mocha test/common",
|
"test:common": "mocha test/common",
|
||||||
"test:content": "mocha test/content",
|
"test:content": "mocha test/content",
|
||||||
"test:karma": "karma start --single-run",
|
"test:karma": "karma start --single-run",
|
||||||
"test:karma:watch": "karma start",
|
"test:karma:watch": "karma start",
|
||||||
"test:prepare:webdriver": "webdriver-manager update",
|
"test:prepare:webdriver": "webdriver-manager update",
|
||||||
"test:e2e:webdriver": "webdriver-manager start",
|
"test:e2e:webdriver": "webdriver-manager start",
|
||||||
"test:e2e": "DISPLAY=:99 NODE_ENV=testing protractor protractor.conf.js",
|
"test:e2e": "protractor protractor.conf.js",
|
||||||
"test:nodemon": "gulp test:nodemon",
|
"test:nodemon": "gulp test:nodemon",
|
||||||
"start": "gulp run:dev",
|
"start": "gulp run:dev",
|
||||||
"sprites": "gulp sprites:compile",
|
"sprites": "gulp sprites:compile",
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import psTree from 'ps-tree';
|
|||||||
import gulp from 'gulp';
|
import gulp from 'gulp';
|
||||||
import Q from 'q';
|
import Q from 'q';
|
||||||
import runSequence from 'run-sequence';
|
import runSequence from 'run-sequence';
|
||||||
|
import os from 'os';
|
||||||
|
|
||||||
const TEST_SERVER_PORT = 3003
|
const TEST_SERVER_PORT = 3003
|
||||||
const TEST_DB = 'habitrpg_test'
|
const TEST_DB = 'habitrpg_test'
|
||||||
@@ -34,8 +35,16 @@ let testCount = (stdout, regexp) => {
|
|||||||
return parseInt(match && match[1] || 0);
|
return parseInt(match && match[1] || 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
let testBin = (string) => {
|
let testBin = (string, additionalEnvVariables = '') => {
|
||||||
return `NODE_ENV=testing ${string}`;
|
if(os.platform() === "win32") {
|
||||||
|
if(additionalEnvVariables != '') {
|
||||||
|
additionalEnvVariables = additionalEnvVariables.split(' ').join('&&set ');
|
||||||
|
additionalEnvVariables = 'set ' + additionalEnvVariables + '&&';
|
||||||
|
}
|
||||||
|
return `set NODE_ENV=testing&&${additionalEnvVariables}${string}`;
|
||||||
|
} else {
|
||||||
|
return `NODE_ENV=testing ${additionalEnvVariables} ${string}`;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
gulp.task('test:nodemon', (done) => {
|
gulp.task('test:nodemon', (done) => {
|
||||||
@@ -56,7 +65,7 @@ gulp.task('test:prepare:mongo', (cb) => {
|
|||||||
|
|
||||||
gulp.task('test:prepare:server', ['test:prepare:mongo'], () => {
|
gulp.task('test:prepare:server', ['test:prepare:mongo'], () => {
|
||||||
if (!server) {
|
if (!server) {
|
||||||
server = exec(`NODE_ENV="TESTING" NODE_DB_URI="${TEST_DB_URI}" PORT="${TEST_SERVER_PORT}" node ./website/src/server.js`, (error, stdout, stderr) => {
|
server = exec(testBin('node ./website/src/server.js', `NODE_DB_URI=${TEST_DB_URI} PORT=${TEST_SERVER_PORT} `), (error, stdout, stderr) => {
|
||||||
if (error) { throw `Problem with the server: ${error}`; }
|
if (error) { throw `Problem with the server: ${error}`; }
|
||||||
if (stderr) { console.error(stderr); }
|
if (stderr) { console.error(stderr); }
|
||||||
});
|
});
|
||||||
@@ -249,7 +258,7 @@ gulp.task('test:karma:safe', ['test:prepare:build'], (cb) => {
|
|||||||
gulp.task('test:e2e', ['test:prepare', 'test:prepare:server'], (cb) => {
|
gulp.task('test:e2e', ['test:prepare', 'test:prepare:server'], (cb) => {
|
||||||
let support = [
|
let support = [
|
||||||
'Xvfb :99 -screen 0 1024x768x24 -extension RANDR',
|
'Xvfb :99 -screen 0 1024x768x24 -extension RANDR',
|
||||||
'npm run test:e2e:webdriver',
|
testBin('npm run test:e2e:webdriver', 'DISPLAY=:99'),
|
||||||
].map(exec);
|
].map(exec);
|
||||||
support.push(server);
|
support.push(server);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user