@Melz

Как лучше поставить статус Inconclusive если компонента нет?

Здравствуйте,

Есть небольшая проблема в том, то нужно тестить данные с железки.
Железка не всегда подключена к компу и не у всех есть и собственно не всем нужна.
Желание - чтобы если ее нет, тесты не падали, а давали Inconclusive .

Собственно нагуглил только такое решение с базовым классом.
В базовом классе тест подключения и очистка после этого. Если тест не проходит - в наследуемом ничего не тестится и показывает Inconclusive. Базовый класс не должен быть виден в Test Explorer.

Есть ли лучшие варианты?

[TestFixture]
    public class TestClassInheritanceBase
    {
        private bool _isConnected;


        [SetUp]
        public void BaseSetUp()
        {
            _isConnected = false;
            Debug.WriteLine("base. SetUp");
        }

        [SetUp]
        public void BaseTearDown()
        {
            Debug.WriteLine("Base. SetUp");
        }
        
        public void TestIsConnected()
        {
            if (!_isConnected)
            {
                Assert.Inconclusive("Device missing.");
            }
        }
    }

    [TestFixture]
    public class TestClassInheritance: TestClassInheritanceBase
    {

        [SetUp]
        public void SetUp()
        {
            Debug.WriteLine("SetUp");   
        }

        [SetUp]
        public void TearDown()
        {
            Debug.WriteLine("SetUp");
        }


        [Test]
        public void TestMethod()
        {
            TestIsConnected();
            var answer = 42;
            Assert.That(answer, Is.EqualTo(42), "Some useful error message");
        }
    }
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
WNeZRoS
@WNeZRoS
Чтобы TestClassInheritanceBase не показывался в списке тестов достаточно не ставить на него атрибут TestFixture.
И похоже на методах BaseTearDown и TearDown должен быть атрибут TearDown, а не SetUp
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы