Интеграция MSpec и Visual Studio 2017
Я хотел бы иметь возможность запускать тесты (спецификации) MSpec из Visual Studio 2017 Test Explorer. У меня есть проект.NET Framework 4.6.1, и я использую следующий пакет NuGet: Machine.Specifications.Runner.VisualStudio
, Я вижу тесты, перечисленные в Test Explorer. Однако, когда я щелкаю правой кнопкой мыши и выбираю "Запустить выбранные тесты", тесты исчезают из Test Explorer и не запускаются.
Я видел этот старый вопрос, имеющий дело с той же проблемой в Visual Studio 2015. Согласно сообщению в блоге, бегун должен поддерживать Test Explorer. Или это так только при работе с проектами.NET Core?
Мне интересно, если варианты еще:
- используйте ReSharper (или другой плагин)
- использовать консольный бегун (который работает)
или я делаю что-то не так.
РЕДАКТИРОВАТЬ: Я наблюдаю поведение, которое я описал только в случае, если спецификация не реализована. Реализованные спецификации, независимо от того, пройдены они или нет, видны в Test Explorer. Я предполагаю, что это должно быть ошибка или, возможно, ожидаемое поведение бегуна MSpec Visual Studio.
0 ответов
Я не уверен, поможет ли это вам, но вы можете дать ему шанс.
Я вернулся к использованию MSpec после нескольких лет его неиспользования (я начал использовать его более 10 лет назад...) и был разочарован тем, что не смог запустить тесты напрямую в VSCode через Test Explorer (используя Расширение.NET Core Test Explorer).
Мое решение состоит в том, чтобы создать прокладки с использованием xUnit, которые запускают отдельные делегаты It для каждой спецификации через адаптер xUnit VSTest.
using Machine.Specifications;
using Machine.Specifications.Model;
using FluentAssertions;
using Xunit;
namespace Specs {
[Subject("MSpec from Xunit")]
public class When_yo_is_set_from_foo {
public When_yo_is_set_from_foo() {
context();
of();
}
static int foo;
static int yo;
Establish context = () =>
foo = 10;
Because of = () =>
yo = foo;
It should_be_10 = () =>
yo.Should().Be(10);
[Fact]
public void It_should_be_10() => should_be_10();
}
}
Это позволит вам запускать ваши тесты в VS (код или полный), а затем вы можете запускать тесты MSpec самостоятельно как часть вашего CI.
Чирикать здесь: https://twitter.com/kfinley/status/1111637434289319938