1

単体テストを学ぶために、C#とXNA4.0で簡単なポンゲームを書いています。使用されるツールは、すべて最新バージョンのTestDriven.NETとNUnitです。問題は、VS2010内部デバッガーを使用してコードをテストすると、すべてが正常に実行されることですが、メニューから[テストの実行]を使用すると、アプリケーションがエラーでチョークします。

Test 'WindowsGame1.Game1.TestGameMenu' failed: Microsoft.Xna.Framework.Content.ContentLoadException : Error loading "SpaceBackground". File not found.
----> System.IO.FileNotFoundException : Error loading "Content\SpaceBackground.xnb". File not found.
(some more below...)

したがって、最初のtextreがロードされるときに停止します。どうしたの?

コードをチェックアウトしたい場合は、ここからダウンロードしてくださいhttp://www.mediafire.com/?qwnkmyqheum

4

1 に答える 1

1

ここでの明らかな質問は、TD.NETがテストを実行するときの作業ディレクトリが何であるかです。ファイルがにC:\game1\content\*あり、TD.NETがで動作しているときにテストを実行している場合C:\TDNET(または何でも)、明らかにロードしようとすると、存在しないがContent\Whatever.jpg開かれます。C:\TDNET\Content\Whatever.jpg簡単な回避策は、コンテンツファイルの絶対パスを設定して(一時的な場合のみ)、これが問題であることを確認することです。

もう1つの質問は、どのバージョンのTestDriven.netを使用していますか?2.7からのリリースノートには次のように書かれています。

966:XNAテストの問題(作業ディレクトリの問題)

回避策については、ここここを参照してください。

最初のサイトは2番目のサイトにリンクしており、この回避策を提供しています。

ステップ1。

AssemblyUtilities.zipをダウンロードしてプロジェクトに解凍し、ソリューションに追加します。

ステップ2。

実行するすべてのアドホックテストに対して、次のコマンドを使用します。

Testdriven.NET.AssemblyUtilities.SetEntryAssembly();

これは、最初の行など、コンテンツをロードする前に呼び出す必要があります。

アドホックテストの例は、次のとおりです。

public static void myAdHocTest()

{
    Testdriven.NET.AssemblyUtilities.SetEntryAssembly();
    //Do your testing here
}

ステップ3。

通常のようにアドホックテストを実行します。テストにキャレットを入れ、右クリックして[テストの実行]を選択します。

于 2010-06-07T11:20:13.490 に答える