2015-09-28 43 views
3

我想知道在运行任何加载测试之前是否有可能启动脚本?例如,也许要在测试执行之前将种子数据或清除任何数据。加载测试Visual Studio,启动脚本/设置

在我的例子中,我有一个设计师和编码测试的混合包。简单地说,我有:

  • 两个coded测试
  • 一个designer创建Web测试指向这些编码的测试
  • 运行于设计师load test

我曾尝试加入类和装饰的属性[TestInitialize()],[ClassInitialize()]但这个代码似乎并没有得到运行。

一些基本的代码在实践中显示(见下文)。有没有办法做到这一点,我可以有东西运行只有一次运行前测试

[TestClass] 
public class Setup : WebTest 
{ 
    [TestInitialize()] 
    public static void Hello() 
    { 
     // Run some code 
    } 

    public override IEnumerator<WebTestRequest> GetRequestEnumerator() 
    { 
     return null; 
    } 
} 

也许还应该提一下,在我的编码测试中,我已经添加了这些属性,并且它们被忽略。我遇到了一个解决方法,即创建一个Plugin

编辑

做完多一点的浏览围绕我发现SO this文章展示了如何实现LoadTestPlugin

回答

2

Visual Studio提供了之前和之后还运行脚本的方式测试运行。它们旨在用于为测试部署数据并在测试后进行清理。脚本在“.testsettings”文件中的"Setup and cleanup"页面上指定。

负载测试插件可以包含任何测试用例执行之前和之后运行的代码,也可以包含测试执行期间的各个阶段。接口是在执行负载测试期间在各个点引发事件。用户代码可以在这些事件发生时被调用。在任何测试用例运行之前引发LoadTestStarting事件。有关更多信息,请参阅here

+0

更喜欢插件的方法,因为它给了我更多的控制权,我认为它非常简单清洁:) –

0

如果你愿意使用NUnit已经设置/ TearDown中的每个测试的范围和TestFixtureSetUp/TestFixtureTearDown做类似的事情一类(的TestFixture)

0

也许一个黑客位的,但你可以把你的代码测试类的静态构造函数中,因为它会自动运行恰好一次之前创建的第一个实例或任何静态成员被引用:

[TestClass] 
public class Setup : WebTest 
{ 
    static Setup() 
    { 
     // prepare data for test 
    } 

    public override IEnumerator<WebTestRequest> GetRequestEnumerator() 
    { 
     return null; 
    } 
}