Rog*_*ger 5 unit-testing mocha.js visual-studio node.js test-explorer
我在 Visual Studio 2017 中有一个 nodejs 项目,正在尝试使用 mocha 进行单元测试。出于某种原因,如果测试资源管理器需要任何不在 node_modules 中的文件,则它无法找到单元测试。
我有一个简单的测试 index.spec.js 并且测试资源管理器能够找到单元测试:
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");
});
});
Run Code Online (Sandbox Code Playgroud)
我有一个相同的测试 heros.spec.js,并添加了“var hero = require('./heroes');” 它没有找到单元测试。我假设它找不到英雄。文件 hero.js 与 hero.spec.js 位于同一文件夹中。我也用 ./heroes.js 试过了。在这两个文件中,TestFramework 都设置为 Mocha
这是文件 hero.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");
});
});
Run Code Online (Sandbox Code Playgroud)
我缩小了问题的范围。hero.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"
};
Run Code Online (Sandbox Code Playgroud)
谢谢
我无法使用 Visual Studio 2017 找到解决方案,因此我下载/安装了 Visual Studio Code。使用 Visual Studio Code,我能够调试单元测试并找到问题。
| 归档时间: |
|
| 查看次数: |
861 次 |
| 最近记录: |