MSTest: методы тестирования, унаследованные от класса, расположенного в другой сборке, не найдены - PullRequest
4 голосов
/ 21 декабря 2011

У меня следующая проблема.У меня есть несколько модульных тестов, реализованных на иностранном языке, на которые я ссылаюсь в своем проекте модульных тестов.Модульные тесты реализованы в виде абстрактных классов и должны быть унаследованы (и вместе с тем «активированы») в моем проекте модульных тестов.

Когда я наследую эти классы в своем проекте, методы тестирования мне видны.Но по любой причине они не управляются Visual Studio.Когда я запускаю тесты с Galio Icarus, я вижу сообщение «Тест ... не может быть найден».

Когда я копирую абстрактные классы тестов в свой проект, тесты обнаруживаются и выполняются правильно.

Знаете ли вы, существуют ли какие-либо ограничения для методов, реализующих модульные тесты?Мне кажется, что выполнение теста имеет логику, которая не только ищет TestClassAttribute, TestMethodAttribute и т. Д., Но также проверяет, выполняется ли реализация теста в той же сборке.

Реализация выглядит следующим образом:

абстрактный класс с тестовой реализацией на стороннем языке:

[TestClass]
public abstract class GeneralGridTestsBase<T> where T : GridParamsBase, new()
{
    [TestMethod]
    public virtual void GetCellSetItems_Unique_CellSetKeys()
    {
        // Test implementation
    }

    // Other tests implemented here
}

В моем тестовом проекте я наследую абстрактный класс и ожидаю, что тесты будут видимыми и «активными».

[TestClass]
public class RetailInputGeneralTests : GeneralGridTestsBase<RetailInputParams>
{ }

1 Ответ

3 голосов
/ 21 декабря 2011

Мне удалось воспроизвести это, а затем исправить, переопределив метод виртуального теста и вызвав базовую реализацию. Это кажется ненужным, но я думаю, что это просто особенность фреймворка MSTest:

[TestClass]
public class RetailInputGeneralTests : GeneralGridTestsBase<RetailInputParams>
{ 
    [TestMethod]
    public override void GetCellSetItems_Unique_CellSetKeys()
    {
        base.GetCellSetItems_Unique_CellSetKeys()
    }
}
...