[英].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 我繼續看到舊版本(10.0.0.0)!!!
我也嘗試使用 Visual Studio 2017 版本 15.9.16。 結果一樣!
正如錯誤消息所說,用ClassInitializeAttribute
修飾的方法必須采用TestContext
參數。
如果您不打算使用.testsettings
文件,則可以忽略它,但不能刪除該參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.