使用不同的参数运行相同的MSTest测试

时间:2014-03-20 09:50:20

标签: unit-testing sharepoint sharepoint-2010 mstest sharepoint-2013

虽然我当前的上下文与SharePoint相关,但这个问题适用于我希望运行相同测试集但具有不同参数的测试。

我现有的测试可以针对SharePoint 2010测试我的Sharepoint代码(使用SharePoint客户端对象模型)。这一切都正常。基类中的帮助器方法为SharePoint 2010实例提供了适当的URL。

我现在也希望针对SharePoint 2013运行这些测试。我正在考虑为SharePoint 2013创建另一个测试配置,并根据正在执行的配置,我可以使用相应的URL。在使用' ClassInitialize'装饰的方法中。属性我没有获得有关正在使用的testsettings文件的任何信息,因此无法知道正在执行哪个配置。

如何实现我的目标 - 针对SharePoint 2010和2013运行相同的测试?

1 个答案:

答案 0 :(得分:0)

设置MSTest项目以使用多种配置

创建一些运行设置文件

向解决方案中添加一个名为config1.RunSettings的文件。将参数添加到文件以更改配置。

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <TestRunParameters>
    <Parameter name="config" value="config1" />
  </TestRunParameters>
</RunSettings>

添加一些初始化代码

AssemblyInit将在测试开始之前运行一次。使用进行任何配置更改。

using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UnitTestProject1
{
    [TestClass]
    public class SetupAssemblyInitializer
    {
        [AssemblyInitialize]
        public static void AssemblyInit(TestContext context)
        {
            // Initalization code goes here
            // https://stackoverflow.com/questions/2382552/is-it-possible-to-execute-code-once-before-all-tests-run

            // set load configuration from runsettings here
            context.Properties["config"];
        }
    }
}

每次运行前选择测试设置文件

https://github.com/MicrosoftDocs/visualstudio-docs/blob/master/docs/test/media/select-test-settings-file.png