私は、stackoverflowに記載されているnunitとvisual studioの問題のいくつかを閲覧しましたが、私のケースが合っているスレッドは見つかりませんでした。NUnit C#他のDLLを参照しているプロジェクトをテストする
私が書いたコードをテストするためにNUnitを使用しています。テストプロジェクトの* .csprojファイルをNUnit GUIツールにロードしています。
私は問題を理解しましたが、これまでのところ解決策はありませんでした。 私がやっていること:
他の2つのプロジェクトは、両方ともdllプロジェクトです。 これは、TestProject(DLL)、SettingsManager(DLL)、DatabaseInterface(DLL)の3つのプロジェクトがあることを意味します。すべてが1つの解決策です。 DatabaseInterfaceプロジェクトには、別のC++ x86、DLLへのネイティブAPIコールが含まれていますが、 "using"ステートメントでこのDLLを明示的に参照していません。
どちらも、SettingsManagerで、パス&などの設定データを保存していますが、とにかく保存しています。 TestProjectとDatabaseInterfaceの両方とも、SettingsManagerを参照します。
3つのプロジェクトはすべて「デバッグ」と「AnyCPU」の下にビルドされています。 &は、TestProjectでSettingsManagerのみを使用しても問題ありませんが、DatabaseInterfaceを追加するとBadImageFormatExceptionが表示され、間違った形式のファイルをロードしようとしています。これは動作しません
:
using myNamespace.Settings; // contains SettingsManager
using myNamespace.DbInterface; // contains DatabaseInterface, which contains native calls to C++ dll
using System;
using NUnit.Framework;
namespace myNamespace.myTestProject
{
[TestFixture]
public class TestProject
{
DatabaseInterface instance = null;
[SetUp]
public void SetUp()
{
}
[Test]
public void ReadDbFile()
{
string s = SettingsManager.DbFile; // gets the path of the db file
}
}
}
2回目の試行を、
using myNamespace.DbInterface;
を含む
using myNamespace.Settings; // contains SettingsManager
using System;
using NUnit.Framework;
namespace myNamespace.myTestProject
{
[TestFixture]
public class TestProject
{
[SetUp]
public void SetUp()
{
}
[Test]
public void ReadDbFile()
{
string s = SettingsManager.DbFile; // gets the path of the db file
}
}
}
NUnitの出力:、それはより多くの目に見えるthatsの作業を行うことが
はをスローします。myNamespace.myTestProject.TestProject(TestFixtureSetUp): SetUp:System.BadImageFormatException: "DatabaseInterface、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null"というアセンブリまたは参照が見つかりませんでした。それは間違った形式のファイルをロードしようとしました。」
すべての3つのプロジェクトはデバッグとAnyCPUを使用して構築されている場合でも。私はのように、標準の* .configファイルを使用してい
NUnitのTestprojectの一つ。たぶんいくつかは、これが間違っている。
は、誰もがこれまでに別のDLLからコードをロードしようと同じエラーが発生しましたしましたか? それは両方のプロジェクト(テスト&データベース)を参照して問題になることができますSettingsManager DLL? 何か大きな間違いをする?
3つのプロジェクトすべてで私のビルド構成をダブルチェックしましたが、間違っている可能性のある設定が見つかりませんでした。BadImageFormatExceptionについて説明しています。
おそらくそれは私が推測する問題でした。私は64ビットWin7を使用しているので、「AnyCPU」を意味するものはすべて64ビットになります。それは32ビットコンパイルされたDatabaseInterface DLLのエラーでした。 – inva