私のVisual Studio 2012ソリューションには、C++/CLIコードの単体テスト用のC#プロジェクトがあります。
...
using System.IO;
using Stuff;
namespace MyCLIClassTest
{
[TestClass]
public class MyCLIClassTest
{
public MyCLIClassTest() {}
[ClassInitialize]
public static void Setup(TestContext testContext)
{
}
[TestMethod]
public void LibraryAccessTest()
{
...
}
}
}
現在、C#テストはすべて失敗し、「メソッドMyCLIClassTest.MyCLIClassTest.ClassInitializeは誤ったシグネチャを持っています。メソッドは静的でパブリックである必要があり、値を返さず、タイプTestContextの単一パラメーターを取る必要があります。」
ClassInitializerを削除した後、「クラスMyCLIClassTest.MyCLIClassTestのTestContextプロパティを設定できません。エラー:System.ArgumentException:タイプ 'Microsoft.VisualStudio.TestPlatform.MSTestFramework.TestContextImplementation'のオブジェクトをタイプ 'Microsoft.VisualStudio.TestToolsに変換できません。 .UnitTesting.TestContext '..
重複する質問からコピーされた代替回答: ClassInitializeの装飾されたメソッドがすべてのテストを失敗させるのはなぜですか?
[ClassInitialize]
装飾されたメソッドは静的で、TestContextタイプのパラメーターを1つだけ受け取る必要があります。
[ClassInitialize]
public static void SetupAuth(TestContext context)
{
var x = 0;
}
私はまったく同じ問題があり、TobiMcNamobiによって提案されたように参照を削除/追加しても解決しませんでしたが、参照を削除し、プロジェクトを右クリックして[追加]> [単体テスト...]を選択すると、参照が再生成されます働いた。手動で実行した場合との違いがわかりません。
セットアップの署名が間違っています。パラメーター1のタイプはMicrosoft.VisualStudio.TestTools.UnitTesting.TestContextである必要があります。
ロードテストプロジェクトを実行していて、DLLの両方のv10.0.0.0バージョンがありました。
Microsoft.VisualStudio.QualityTools.LoadTestFramework.dll
Microsoft.VisualStudio.QualityTools.WebTestFramework.dll
LoadTestFrameworkのバージョンを10.1に変更しても修正されませんでした。
単体テストプロジェクトに移動して、MSTest.Adapter参照を削除する必要がありました。
Microsoft.VisualStudio.TestPlatform.TestFramework.dll
Microsoft.VisualStudio.TestPlatform.Extensions.dll
次に、単体テストプロジェクトにv10.1への参照を追加します。
Microsoft.VisualStudio.QualityTools.LoadTestFramework.dll