23

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'。。

4

4 に答える 4

26

古いユニットテストフレームワークバージョンのDLLを使用しました。これは、プロジェクトが最近VS2012に移行したために発生しました。

したがって、テストプロジェクトのソリューションエクスプローラーには、「参照」があります。それを右クリックし、[参照の追加...]を選択して参照マネージャーを開きます。「unittest」を検索し、バージョン番号10.1.0.0のMicrosoft.VisualStudio.QualityTools.UnitTestFrameworkを確認します。このアセンブリの他のすべてのバージョンのチェックを外します。[OK]をクリックしてマネージャーを閉じます。

ここに画像の説明を入力してください

于 2013-02-07T12:32:26.153 に答える
16

重複した質問からコピーされた別の回答:ClassInitializeで装飾されたメソッドがすべてのテストを失敗させるのはなぜですか?

装飾された[ClassInitialize]メソッドは静的であり、TestContextタイプのパラメーターを1つだけ取る必要があります。

[ClassInitialize]
public static void SetupAuth(TestContext context)
{
    var x = 0;
}
于 2014-03-19T01:29:21.770 に答える
1

TobiMcNamobiによって提案されたのとまったく同じ問題が発生し、参照を削除/追加しても解決しませんでしたが、参照を削除し、プロジェクトを右クリックして[追加]> [単体テスト...]を選択すると、参照が再生成されます働いた。手動で行うのと比較してどのような違いがあるのか​​わかりません。

于 2014-02-24T11:25:45.747 に答える
1

セットアップの署名が間違っています。パラメータ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
于 2017-07-03T03:35:17.940 に答える