我在哪里可以找到 TestContext.AddResultFile()?
Where do I find TestContext.AddResultFile()?
我在 TestContext
class 上引用 the documented method AddResultFile()
时遇到问题,据称在 Microsoft.VisualStudio.TestTools.UnitTesting
package/namespace 中找到。
这是我的包裹清单:
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
<PackageReference Include="Selenium.Support" Version="3.141.0" />
<PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="2.46.0" />
<PackageReference Include="specflow" Version="3.0.199" />
<PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.0.199" />
<PackageReference Include="SpecFlow.MsTest" Version="3.0.199" />
<PackageReference Include="MSTest.TestFramework" Version="2.0.0-beta4" />
<PackageReference Include="MSTest.TestAdapter" Version="2.0.0-beta4" />
这是我的测试(的一部分)(步骤定义 - 它是 SpecFlow)class:
using System;
using System.IO;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using TechTalk.SpecFlow;
using XunitTestLib.Drivers;
using XunitTestLib.Helpers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace XunitTestLib.StepDefinitions
{
[Binding]
public class BrowserSteps : BrowserDriver
{
public IWebElement CurrentElement { get; set; }
public TestContext TestContext { get; set; }
public BrowserSteps(TestContext tcontext)
{
this.TestContext = tcontext;
}
[Given(@"I navigate to (.*)")]
[When(@"I navigate to (.*)")]
[Then(@"I navigate to (.*)")]
public void INavigateTo_(string url)
{
Browser.Navigate().GoToUrl(url);
}
// ***Numerous methods for specflow/selenium-based testing***
[Given(@"I take a screenshot")]
[When(@"I take a screenshot")]
[Then(@"I take a screenshot")]
public void ITakeAScreenshot()
{
var sep = Path.DirectorySeparatorChar;
var time = DateTime.Now.ToString("yyyy-MM-dd_HH_mm_SS_") + DateTime.Now.Ticks;
var path = $@"{Directory.GetCurrentDirectory()}{sep}{time}.png";
Browser
.GetScreenshot()
.SaveAsFile(path);
TestContext.AddResultFile(path); // THIS METHOD NOT FOUND
}
}
}
如何找到并使用 AddResultFile()
方法?我想我缺少参考...?
这里报告了 MSTest.TestFramework
包中的错误:
https://github.com/Microsoft/testfx/issues/394
从今天起 4 天前在 pull request 中解决了:
https://github.com/Microsoft/testfx/pull/609
但是我在最近 23 天的版本 2.0.0-beta4
中看不到 nuget 版本的任何更新,并且现在没有此之后的版本。 https://www.nuget.org/packages/MSTest.TestFramework/
中间修复 是使用此处的最新位直到有新的更新与此修复:
https://dotnet.myget.org/F/mstestv2/api/v3/index.json
特别是,您应该将您的适配器和框架 nuget 包更新到这些版本:
https://dotnet.myget.org/feed/mstestv2/package/nuget/MSTest.TestAdapter/2.0.0-build-20190430-01
https://dotnet.myget.org/feed/mstestv2/package/nuget/MSTest.TestFramework/2.0.0-build-20190430-01
更新 09/2019:MS 测试框架的 v2 已正式发布,其中包含有问题的方法。
我在 TestContext
class 上引用 the documented method AddResultFile()
时遇到问题,据称在 Microsoft.VisualStudio.TestTools.UnitTesting
package/namespace 中找到。
这是我的包裹清单:
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
<PackageReference Include="Selenium.Support" Version="3.141.0" />
<PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="2.46.0" />
<PackageReference Include="specflow" Version="3.0.199" />
<PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.0.199" />
<PackageReference Include="SpecFlow.MsTest" Version="3.0.199" />
<PackageReference Include="MSTest.TestFramework" Version="2.0.0-beta4" />
<PackageReference Include="MSTest.TestAdapter" Version="2.0.0-beta4" />
这是我的测试(的一部分)(步骤定义 - 它是 SpecFlow)class:
using System;
using System.IO;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using TechTalk.SpecFlow;
using XunitTestLib.Drivers;
using XunitTestLib.Helpers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace XunitTestLib.StepDefinitions
{
[Binding]
public class BrowserSteps : BrowserDriver
{
public IWebElement CurrentElement { get; set; }
public TestContext TestContext { get; set; }
public BrowserSteps(TestContext tcontext)
{
this.TestContext = tcontext;
}
[Given(@"I navigate to (.*)")]
[When(@"I navigate to (.*)")]
[Then(@"I navigate to (.*)")]
public void INavigateTo_(string url)
{
Browser.Navigate().GoToUrl(url);
}
// ***Numerous methods for specflow/selenium-based testing***
[Given(@"I take a screenshot")]
[When(@"I take a screenshot")]
[Then(@"I take a screenshot")]
public void ITakeAScreenshot()
{
var sep = Path.DirectorySeparatorChar;
var time = DateTime.Now.ToString("yyyy-MM-dd_HH_mm_SS_") + DateTime.Now.Ticks;
var path = $@"{Directory.GetCurrentDirectory()}{sep}{time}.png";
Browser
.GetScreenshot()
.SaveAsFile(path);
TestContext.AddResultFile(path); // THIS METHOD NOT FOUND
}
}
}
如何找到并使用 AddResultFile()
方法?我想我缺少参考...?
这里报告了 MSTest.TestFramework
包中的错误:
https://github.com/Microsoft/testfx/issues/394
从今天起 4 天前在 pull request 中解决了:
https://github.com/Microsoft/testfx/pull/609
但是我在最近 23 天的版本 2.0.0-beta4
中看不到 nuget 版本的任何更新,并且现在没有此之后的版本。 https://www.nuget.org/packages/MSTest.TestFramework/
中间修复 是使用此处的最新位直到有新的更新与此修复:
https://dotnet.myget.org/F/mstestv2/api/v3/index.json
特别是,您应该将您的适配器和框架 nuget 包更新到这些版本: https://dotnet.myget.org/feed/mstestv2/package/nuget/MSTest.TestAdapter/2.0.0-build-20190430-01 https://dotnet.myget.org/feed/mstestv2/package/nuget/MSTest.TestFramework/2.0.0-build-20190430-01
更新 09/2019:MS 测试框架的 v2 已正式发布,其中包含有问题的方法。