簡體   English   中英

.NET 從單元測試中刪除 TestContext 的問題

[英].NET Problem removing TestContext from Unit tests

我有一個 c# 單元測試項目(.NET 4.8)。 我的單元測試正在使用我要刪除的 .testsetting 文件。 在我的單元測試中,我也使用了 TestContext:

        private TestContext testContextInstance;
        public TestContext TestContext
        {
            get { return testContextInstance; }
            set { testContextInstance = value; }
        }

        [ClassInitialize()]
        public static void MyClassInitialize(TestContext testContext)
        {
            LoadSettings(testContext.DeploymentDirectory);
        }

首先我刪除了 .testsettings 文件,然后我修改了刪除 TestContext 的單元測試:

        [ClassInitialize]
        public static void MyClassInitialize()
        {
            LoadSettings(Directory.GetCurrentDirectory());
        }

我的問題是當我運行單元測試時出現此錯誤:

MyClassInitialize 的簽名錯誤。 該方法必須是 static,public,不返回值,應采用 TestContext 類型的單個參數。

查看這個問題,我將“Microsoft.VisualStudio.QualityTools.UnittestFramework”的版本從 10.0.0.0 更改為 10.1.0.0,但沒有成功。

在運行測試之前,我從“測試”菜單中取消選中了.testsettings,然后將其刪除。

當前使用 Visual Studio 2019 版本 16.3.2。

我仍然遇到同樣的錯誤。 我是否需要參考另一個 dll 或其他版本? 我需要安裝一些東西嗎?

更新:

在這里我如何添加參考: 在此處輸入圖像描述

這里是 Visual Studio 在 .csproj 文件中添加的行:

參考包括="Microsoft.VisualStudio.QualityTools.UnitTestFramework,Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,processorArchitecture=MSIL"

這是在 Visual Studio 中查看參考屬性的方式: 在此處輸入圖像描述

我仍然得到錯誤,但奇怪的是如果我在引用屬性中重新啟動 Visual Studio 我繼續看到舊版本(10.0.0.0)!!!

在此處輸入圖像描述

我也嘗試使用 Visual Studio 2017 版本 15.9.16。 結果一樣!

正如錯誤消息所說,用ClassInitializeAttribute修飾的方法必須采用TestContext參數。

如果您不打算使用.testsettings文件,則可以忽略它,但不能刪除該參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM