1

ステートメントを使用してボイラープレートがあるとします。次のように言います。

#if !NUNIT
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Category = Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute;
#else
using NUnit.Framework;
using TestClass = NUnit.Framework.TestFixtureAttribute;
using TestMethod = NUnit.Framework.TestAttribute;
using TestInitialize = NUnit.Framework.SetUpAttribute;
using TestCleanup = NUnit.Framework.TearDownAttribute;
using TestContext = System.Object;
#endif

(これは私の単体テストコード用です)単体テストがあるすべてのファイルの先頭にそれを置きたくない場合、ここで間接レベルを設定する方法はありますか?

これがうまくいくとは思いませんが、これが私が考えていることの例です:

NUnitCompatability.csというファイルを作成し、その中に上記のコードを入れます。using NUnitCompatability次に、すべての単体テストファイルに追加します。これはDelphiでは機能しますが、C#では機能しません(私は思います)。しかし、このタイプの機能を利用する別の方法はありますか?

4

3 に答える 3

4

いいえ、これは不可能です。

おそらく、ディレクティブをCusingのinに似ているかのように考えているでしょう。そうではありません。#include

usingディレクティブは、特定のファイルで使用されているタイプを検索する名前空間をコンパイラーに指示するだけです。したがって、それらを別のファイルに保存することもできません。

ディレクティブのコードに条件付きコンパイラディレクティブをわざわざ入れませんusingusingコンパイル時の未使用に関連するオーバーヘッドはほとんどなく(検索スペースはわずかに大きくなります)、実行時のオーバーヘッドはまったくありません。

于 2010-08-26T16:15:22.077 に答える
2

C#ではこれに対する組み込みのサポートはありません。C#プリプロセッサは意図的に非常に限定されたツールであり#include、2つから1つのファイルを作成できるスタイル操作をサポートしていません。

はい、このような非常に単純なケースでは、少しイライラする可能性があります。しかし、それは、C ++プリプロセッサを使用して、非常に多くの人々が行ってきた、そして続けている悪を上回ります。

于 2010-08-26T16:19:36.313 に答える
2

単体テストクラスに使用したい特定のusingステートメントのセットがある場合、これは、特にその目的のために新しいテンプレートを作成するのに十分な理由のようです。VSが提供するファイルの種類に制限はありません。ファイルの種類を拡張して独自のファイルを作成し、使用するステートメントを独自に選択することができます。ここでプロセスを説明するには時間がかかりすぎるため、MSDNをここで確認してください。

http://msdn.microsoft.com/en-us/library/6db0hwky(v=VS.100).aspx

于 2010-08-26T16:25:02.180 に答える