2

単体テストしたい .Net Web アプリケーションの最上位層にコードがありますが、ビルド サーバーが aspnet_compiler.exe を使用してプロジェクトをコンパイルすると、別のアプリケーションではまったく使用できない .dll ファイルが作成されます。プロジェクト、つまり NUnit テスト プロジェクトです。

(これは、ASP .Net Web アプリケーションと ASP .Net MVC アプリケーションに当てはまります。)

ここで何か間違ったことをしていますか?コンパイラを呼び出すNAntスクリプトは次のとおりです...

<exec program="${asp.compiler.home}/aspnet_compiler.exe" failonerror="true">
   <arg value="-nologo"/>
   <arg value="-c"/>
   <arg value="-f"/>
   <arg value="-errorstack"/>
   <arg value="-v"/>
   <arg value="${project.name}"/>
   <arg value="-p"/>
   <arg value="${project::get-base-directory()}"/>
   <arg value="${web.deploy.dir}\${project.name}"/>
  </exec>
4

4 に答える 4

4

ユニットテストしたい.NetWebアプリケーションの最上位層にコードがあります[...]

すぐそこに止まります。それが問題です。そのコードをヘルパーに配置し、ASP.NETの外部でテストします。

于 2009-10-15T13:38:53.147 に答える
3

aspnet_compiler.exe を使用する必要はありません。これは、ユーザーが初めてページにアクセスしたときの起動時の遅延を回避するために aspx ページをプリコンパイルするための単なるユーティリティ アプリケーションです。

私が理解しているように、ASP.NET MVC Web アプリケーションの aspx/ascx 以外のコードは、ソリューションのビルド時に通常どおり DLL にコンパイルされます。この DLL は、NUnit テスト プロジェクトで使用できます。テストしたいビットだと思います。

そのため、NAnt から MSBuild を使用してプロジェクトをビルドし、aspnet_compiler.exe のことは忘れてください。

于 2009-10-21T21:54:30.660 に答える
1

ビルド後のイベントとしてナントではなく、ここのようなものを実行できませんか?

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v / -p "$(SolutionDir)\PathToMyWebProject"

(ここで、FilePathToMyWebProject は、ソリューション ファイルを基準としたプロジェクト ファイルへのパスです)

于 2009-10-14T20:21:56.957 に答える
0

ビルド ファイルで MSBuild を使用して Web アプリをコンパイルし、テストを実行します。NAnt をスキップできる場合は、ビルド ファイルの関連セクションを次に示します (MSbuild.exe のパラメーターとして呼び出されます)。

<!-- Build projects by calling the Project files generated by VS -->
  <Target Name="Build">
    <MSBuild Projects="$(ProjectFile)" />
    <MSBuild Projects="$(TestProjectFile)" />
  </Target>

  <!-- Run Unit tests -->
  <Target Name="Test" DependsOnTargets="Build">
    <CreateItem Include="ClearViewTest\Bin\Debug\ClearViewTest.exe">
      <Output TaskParameter="Include" ItemName="ClearViewTest" />
    </CreateItem>
    <NUnit Assemblies="@(ClearViewTest)" ToolPath="C:\Program Files\NUnit 2.4\bin" ContinueOnError="false" OutputXmlFile="SoultionTestResults.xml" />
  </Target>
于 2009-10-14T20:26:34.473 に答える