c# - 如何获取当前的测试夹具属性
问题描述
我运行 selenium 测试,并创建了一个自定义测试夹具属性,我将其应用于每个夹具 3 次,每次都使用新驱动程序,因此我的测试可以在 3 个单独的浏览器中运行 3 次。它看起来像这样:
[TestFixture(typeof(InternetExplorerDriver))]
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(ChromeDriver))]
class Edit<TWebDriver> : BaseTest<TWebDriver> where TWebDriver : IWebDriver, new()
{
[Test]
public void Test()
{
//test code
}
}
对于我的测试夹具,我以 1:1 的比例镜像 Web 应用程序视图 - 因此 Web 应用程序代码中的 Dashboard\Index 视图将是我测试相同视图的测试的 Dashboard\Index 文件夹,因此测试组织是非常严格。
我遇到了一个问题,即某些测试不应该在某些浏览器中运行,例如 IE。然而,大多数测试都需要。我想要做的是每个测试夹具
有什么方法可以在测试运行时获取测试夹具 typeof 值,以便我可以执行以下操作(伪代码)...:
[Test]
public void Test()
{
if(testFixture typeof is InternetExplorerDriver)
{
Assert.Ignore("test not to be run in IE");
}
// all the test code
}
解决方案
请尝试下面修改的代码。
[TestFixture(typeof(InternetExplorerDriver))]
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(ChromeDriver))]
class Edit<TWebDriver> : BaseTest<TWebDriver> where TWebDriver : IWebDriver, new()
{
private TWebDriver webDriver;
public Edit(TWebDriver webDriver)
{
this.webDriver = webDriver;
}
[Test]
public void Test()
{
//test code
if (this.webDriver.GetType() == typeof(InternetExplorerDriver))
{
Assert.Ignore("test not to be run in IE");
}
}
}
推荐阅读
- javascript - 打字稿:在另一个类构造函数中创建类实例数组
- cobol - 如何在 Cobol 中进行货币分解
- r - 如何将低于列的值(因子)带到R中的其他新列
- php - 如何正确使用 laravel 中的 chunk 方法更新数千行?
- mongodb - 如何从Mongodb中的生日日期计算平均年龄?
- c# - C# WPF 以编程方式添加表格边框
- javascript - 从 typescript/javascript 中的 Json 对象读取属性
- javascript - 将“Id”选中的复选框传递给模态引导程序并发送到控制器
- javascript - 在 npm 上发布 wasm 库的首选方式是什么?
- android - 无法在 android studio 中调试应用程序