6

私は .NET MVC ソリューションを持っています。これにはさまざまな JavaScript が含まれています。QUnit を使用してこれらのスクリプトをテストできるようにしたいので、

テスト スクリプトと QUnit アーティファクトはどこに置くのですか?

mvc プロジェクトで?はいの場合、おそらく、アプリケーションをデプロイするときにビルド プロセスを介してこれらのスクリプトを削除する必要がありますか? 少しゴミに見えますか?テスト コードを製品コードに混入させたくありません。

別の「テスト」Web プロジェクトで?より良い分離には最適ですが、テスト スクリプトから参照できるように、SUT スクリプトをこの別のプロジェクトに移動するビルド アクションが必要です。おそらくオプション 1 よりも望ましいですが、それでも少しゴミですか?

ベストプラクティスは何ですか? ベストプラクティスはありますか? 私が言及していない他の方法はありますか?役立つツールはありますか?明らかな何かを見逃しましたか?

これは、別のプロジェクト + Xcopy タイプのソリューションを示唆していますが、答えはかなり古いものです。

ありがとう。

4

2 に答える 2

5

ほとんどの人と同じように、私はテストを本番コードから切り離しておくのが好きです。

VS2012 (またはそれ以降) とChutzpah テスト アダプターを使用している場合は、.NET コードの場合と同じように、テスト用に別のクラス ライブラリを作成するだけです。

tests.js` ファイルをテスト クラス ライブラリに追加し、メイン プロジェクトから適切なスクリプトを参照するだけです。たとえば、Jasmine と Angular を使用すると、次のようになります。

/// <reference path="../../MainProject/lib/angular/angular.js" />
/// <reference path="../../MainProject/lib/angular/angular-mocks.js" />
/// <reference path="../../MainProject/lib/angular/angular-resource.js" />
/// <reference path="../../MainProject/lib/jasmine.js" />
/// <reference path="../../MainProject/scripts/controllers.js" />

describe('My controller tests', function () {
  ...
});

持っている各テスト js ファイルでこれらすべての参照パスを繰り返さないようにしたい場合は、それらを_references.jsファイルに追加してから、ファイル内のその 1 つのスクリプトを参照するだけtests.jsです。Web プロジェクトに参加しておらず、コンソール プロジェクトには Web プロジェクトと同じような暗黙的な参照がないため、ファイルを手動で参照する必要があります。

于 2013-09-25T22:25:06.070 に答える
0

選択肢がある場合は、テストとテスト インフラストラクチャをメイン コードに配置します。

分離する必要がある場合、ほとんどの人は、本番コード (js スクリプトを含む) を参照する別のテスト プロジェクトを作成するだけです。

于 2013-07-11T19:59:19.130 に答える