Node.js Visual Studio 2017使用摩卡
我在Visual Studio 2017中有一个nodejs项目,正在尝试使用mocha进行单元测试。由于某些原因,如果测试资源管理器需要任何不在节点_模块中的文件,则无法找到单元测试 我有一个简单的test index.spec.js,test Explorer可以找到单元测试: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 () {
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"
};