Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Visual Studio 2017使用摩卡_Node.js_Visual Studio_Unit Testing_Mocha.js_Test Explorer - Fatal编程技术网

Node.js Visual Studio 2017使用摩卡

Node.js Visual Studio 2017使用摩卡,node.js,visual-studio,unit-testing,mocha.js,test-explorer,Node.js,Visual Studio,Unit Testing,Mocha.js,Test Explorer,我在Visual Studio 2017中有一个nodejs项目,正在尝试使用mocha进行单元测试。由于某些原因,如果测试资源管理器需要任何不在节点_模块中的文件,则无法找到单元测试 我有一个简单的test index.spec.js,test Explorer可以找到单元测试: var assert = require('assert'); describe('Index Suite 1', function () { it('Test 1', function () {

我在Visual Studio 2017中有一个nodejs项目,正在尝试使用mocha进行单元测试。由于某些原因,如果测试资源管理器需要任何不在节点_模块中的文件,则无法找到单元测试

我有一个简单的test 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");
    });
});
我有一个相同的测试heros.spec.js,添加了“var heros=require('./heros');”,它没有找到单元测试。我想它找不到英雄。文件heromes.js与heromes.spec.js位于同一文件夹中。我还尝试了使用./heros.js。在这两个文件中,TestFramework都设置为Mocha

这是heros.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')


谢谢

我无法使用Visual Studio 2017找到解决方案,因此我下载/安装了Visual Studio代码。使用Visual Studio代码,我能够调试我的单元测试并找到问题。

如果未找到./heroes,则将抛出错误并停止执行。这似乎不是您的情况。我相信mocha找不到您的heroes.spec.js文件,因为它可能位于test Directory的子目录中,不知道您在问什么。我无法使用Visual Studio 2017使其正常工作。我能够使用VisualStudio代码让它工作。这是Visual Studio的免费版本。我的意思是“Visual Studio代码”。它在“Visual Studio 2017”中正常工作,但我无法在“VSCode”中正常工作。
var dbConfig = {
    "user": "test",
    "password": "password",
    "server": "xxxx",
    "database": "Sandbox"
};