2015-08-25 3 views
1

Я работаю над приложением Sails, и для моих модульных тестов мне нужно использовать некоторую переменную в ./test/bootstrap.test.js и в ./test/unit/ контроллеры/*. test.js. Я думаю о глобальных переменных, но как их создать?Глобальные переменные для модульных тестов в приложении SailsJS

я мог бы создать что-то вроде ./config/mydatatest.js что-то вроде:

module.exports.myconf = {  
    anyobject: { 
     bar: "foo" 
    } 
}; 

Но есть ли способ создать mydatatest.js в тестовом каталоге?

ответ

2

Мне нравится идея рассмотрения теста как специфическая среда, как развитие или производство. Вы можете создать environment-specific fileconfig/env/test.js поставить конфигурацию:

/** 
* Test environment settings 
*/ 
module.exports = { 
    myconf: { 
    anyobject: { 
     bar: "foo" 
    } 
    } 
}; 

Затем, вы можете добавить NODE_ENV=test к команде, которые запускают тесты (на основе the example from the documentation)

"scripts": { 
    "start": "node app.js", 
    "debug": "node debug app.js", 
    "test": "NODE_ENV=test mocha test/bootstrap.test.js test/unit/**/*.test.js" 
}, 

я использую эту технику, используйте адаптеры sails-memory, когда я запускаю свои тесты.

1

Как насчет того, чтобы вставить его в bootstrap.test.js?

before(function (done) { 
    Sails.lift({ 
    port  : 5031, 
    log  : { 
     level: 'error' 
    }, 
    myconf  : { 
     anyobject: { 
     bar: "foo" 
     } 
    } 
    }, function (err, server) { 
    sails = server; 
    done(err); 
    }); 
}); 

В основном это может. Если вы хотите разместить отдельный файл/папку, просто требуйте их в своем bootstrap.test.js внутри вашего myconf, как в моем примере.

Смежные вопросы