Visual Studio 2017 с использованием мокко
У меня есть проект nodejs в Visual Studio 2017, и я пытаюсь выполнить модульное тестирование с помощью mocha. По какой-то причине Test Explorer не может найти модульные тесты, если ему требуется какой-либо файл, отсутствующий в node_modules
У меня есть простой тест index.spec.js и Test Explorer может найти модульные тесты:
var assert = require('assert');
describe('Index Suite 1', function () {
it('Test 1', function () {
assert.ok(true, "This shouldn't fail");
});
it('Test 2', function () {
assert.ok(1 === 1, "This shouldn't fail");
assert.ok(false, "This should fail");
});
});
У меня есть идентичный тест heroes.spec.js с добавлением "var heroes = require('./heroes');" и он не находит модульный тест. Я предполагаю, что он не может найти героев. Файл heroes.js находится в той же папке, что и heroes.spec.js. Я также попробовал это с./heroes.js. В обоих файлах TestFramework установлен на Mocha
Это файл heroes.spec.js
var assert = require('assert');
var heroes = require('./heroes');
describe('Heroes Test', function () {
it('Test 1', function () {
assert.ok(true, "This shouldn't fail");
});
it('Test 4', function () {
assert.ok(1 === 1, "This shouldn't fail");
assert.ok(false, "This should fail");
});
});
Я сузил проблему. heroes.js ссылается на другие модули, а один из модулей ссылается на db.js, который использует config для установки dbConfig. Если я заменю код и жестко закодирую значения, найдутся модульные тесты. У меня есть работа вокруг, но я хотел бы сделать это правильно. Я попытался установить переменную среды NODE_ENV=test в свойствах проекта и создать test.config. Тем не менее проблема существует. Есть идеи, как это сделать правильно?
Вот моя работа вокруг
//var dbConfig = config.get('dbConfig');
var dbConfig = {
"user": "test",
"password": "password",
"server": "xxxx",
"database": "Sandbox"
};
Спасибо
1 ответ
Мне не удалось найти решение с помощью Visual Studio 2017, поэтому я загрузил / установил код Visual Studio. Используя код Visual Studio, я смог отладить свой модульный тест и найти проблему.