質問

C#とXNA 4.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...)

そのため、最初のテキストレがロードされると停止します。どうしたの?

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

役に立ちましたか?

解決

ここでの明らかな質問は、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。

テストにカレットを入れて、右クリックして「実行テスト」を選択して、通常のようなアドホックテストを実行します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top