2017-11-28 29 views
1

Visual Studio 2017にnodejsプロジェクトがあり、mochaを使用して単体テストを試みています。何らかの理由で、テストエクスプローラでnode_modulesにないファイルが必要な場合、ユニットテストを見つけることができません。Visual Studio 2017 Mochaの使用

Iは、単純なテストindex.spec.jsを有し、テスト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"); 
    }); 
}); 

I「はVaRの英雄の添加と同じ試験heroes.spec.jsを有し= require( './英雄');単体テストが見つかりません。私はそれが英雄を見つけることができないと仮定します。ファイルheroes.jsは、heroes.spec.jsと同じフォルダにあります。私も./heroes.jsで試しました。両方のファイルでは、TestFrameworkは、これは私が問題を狭めファイル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は他のモジュールを参照し、モジュールの1つはdbConfigを設定するためにconfigを使用するdb.jsを参照します。コードを置き換えて値をハードコードすると、単体テストが見つかります。私は回避策がありますが、正しくやりたいと思います。私は環境変数NODE_ENV = testをプロジェクトのプロパティに設定し、test.configを作成しようとしました。それでも問題は存在します。どのようにこれを正しく行うための任意のアイデアですか?

ここは私の仕事です
// var dbConfig = config.get( 'dbConfig');

var dbConfig = { 
    "user": "test", 
    "password": "password", 
    "server": "xxxx", 
    "database": "Sandbox" 
}; 

おかげ

+0

./heroesが見つからない場合はエラーがスローされ、実行が停止します。これはあなたのケースではないようです。私はmochaがあなたのheroes.spec.jsファイルを見つけることができないと信じています。おそらく、それはテストディレクトリのサブディレクトリ – kingdynastyk

答えて

0

私は、Visual Studio 2017を使用して解決策を見つけることができなかったので、私は/は、Visual Studioのコードをインストールし、ダウンロード。 Visual Studio Codeを使用して、単体テストをデバッグして問題を見つけることができました。

関連する問題