Можно ли передать или установить параметры в TestContext и использовать его в классе TestBase? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть класс модульного теста, который выглядит примерно так.

[TestClass]
public class DemoTests : TestBase
{
    [TestMethod]
    public async Task TestWithInMemory()
    {
        using(var context = new InMemoryDbContext())
        {
             //Do something with the context
        }
    }

    [TestMethod]
    public async Task TestWithSqlServer()
    {
        using(var context = new SqlServerDbContext())
        {
             //Do something with the context
        }
    }
}

А мой класс TestBase выглядит примерно так.

[TestClass]
public class TestBase
{
    public TestContext TestContext { get; set; }

    [TestInitialize]
    public void Initialise()
    {
        if(parameter passed from test method is InMemory)
        {
            //create InMemory database context
        }
        else
        {
            //create SQL Server database context
        }
    }

    [TestCleanup]
    public void Cleanup()
    {
        //Dispose 
    }
}

По сути, я пытаюсь использовать InMemoryи провайдеры SQL Server, чтобы написать мои тесты в зависимости от сценария.Я знаю, что могу разделить контрольные примеры, основанные на этом, в отдельные файлы.Но возможно ли TestMethod сообщить классу TestBase, какой поставщик он хочет использовать?Или вообще можно отправить параметр (например, bool) из TestMethod в TestBase?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...