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, я смог отладить свой модульный тест и найти проблему.

Другие вопросы по тегам