Web開発において、1つのページの機能をテストするのは、ホームページからユーザー名とパスワードを入力した後、いくつかの操作を経てからでないとテストしたいページにたどり着くことができず、非常に面倒です。 (実際、どんな開発をするにしても、単一関数のテストは非常に面倒です)。慎重な姿勢で、私は通常、いくつかの段落を書いて一度テストすることを好みます。毎回テストするためにプロジェクト全体を開始するのは明らかに非常に不経済です。
通常、ソリューションにテスト用の新しい構成を追加し、その中に「Test」などのコンパイル ディレクティブを追加して、コード内のこのディレクティブの下にいくつかのテスト条件とテスト メソッドを配置します。開発チームが単体テストなどの概念を導入していないときに、新しいテスト プロジェクトを追加してこのようなことをしたくありません。また、Web の下に 1 つのページがあるような状況では、どうすればよいかわかりません。したがって、以前は私自身のコンパイル命令を使用した方が馴染みがあります。
(以前、WEB 以外のものを書いていたときは、テスト メソッドとクラス自体をファイルに記述し、それらを区別するためにコンパイル命令を使用することも好きでした。テストしたい場合は、単に「テスト」を直接選択します。 TestDriven は、プロジェクト全体を起動することなく、マシン上の労力を大幅に節約できます。
C# で開発している場合、開発環境では、現在のコンパイル条件が満たされていない場合、それらのコードはグレー表示され、インデントされますが、目障りではありません)
ただし、私のトリックは VS2005 では機能しなくなりました。Web 開発は以前とは少し異なります。検索してもコンパイル命令を追加する場所が見つかりません。Web 開発者以外でも追加する場所は見つかります。長い間苦労した後、Web.config にいくつかの設定を追加したことがわかりました。条件付きコンパイルも例外ではありません。
たとえば、「Test」条件付きコンパイル ディレクティブを追加する必要があります。 Web.config ファイルの <compilation> セクションに次のステートメントを追加するだけです。
<コンパイラー>
<コンパイラー言語="vb"
type="Microsoft.VisualBasic.VBCodeProvider、System、Version=2.0.0.0、Culture=neutral、PublicKeyToken=B77A5C561934E089"
extension=".VB"
COMPILEROptions="/define:Debug=True /define:Trace=True /define:Test=True "/>
<コンパイラ言語="c#"
type="Microsoft.CSharp.CSharpCodeProvider、System、Version=2.0.0.0、Culture=neutral、PublicKeyToken=B77A5C561934E089"
extension=" .cs"
combilerOptions="/d:DEBUG;TRACE;Test"/>
</compilers>
もちろん、対応する言語がプロジェクトで使用されていない場合は、無視するか削除できます。一般的にはC#とVBがよく使われますが、私はこの2つだけを使います。
Web.config で設定した後は、テストする必要がある各ページでコンパイル命令を定義する必要はありません。ただし、以前ほどは、Web.config で構成を直接選択するだけで十分でした。 IDE ツールバー。今は非常に多くのことを書かなければなりませんが、主に切り替えがまだ不便です。たとえば、「テスト」条件で開始したくない場合は、Web.config に移動して上記の段落をコメントアウトする必要があります。
MSDN によると、.Net 2.0 では、<compiler> 要素は非推奨になっています。私のアプローチは正しい方法ではないようです。