Мне лично не нравится идея смешивания двух фреймворков, как это упомянуто в статье , на которую вы ссылаетесь.
Возможное условие для запуска модульного теста в обоих тестах.фреймворки могут заключаться в том, что вы не хотите или не можете установить Visual Studio на сервер непрерывной интеграции.
Просто для пояснения, MSTest не является платформой модульного тестирования Visual Studio, определенной в Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
assembly.
Чтобы позволить вашему модульному тесту запускаться в обеих платформах, вам необходимо определить постоянную сборки (здесь NUNIT
) и с помощью директив препроцессора и псевдонимы пространства имен вы получите такой фрагмент кода:
#if !NUNIT
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Category = Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute;
#else
using NUnit.Framework;
using TestInitialize = NUnit.Framework.SetUpAttribute;
using TestContext = System.Object;
using TestProperty = NUnit.Framework.PropertyAttribute;
using TestClass = NUnit.Framework.TestFixtureAttribute;
using TestMethod = NUnit.Framework.TestAttribute;
using TestCleanup = NUnit.Framework.TearDownAttribute;
#endif
Мне кажется, я впервые столкнулся с этой идеей в этой статье MSDN Magazine .Еще одно полезное сообщение в блоге, посвященное этой теме:
Для вашегопоследний вопрос: проект Fluent Assertions кажется хорошей библиотекой.Я не вижу каких-либо реальных причин, почему вы не должны использовать его, если вам нравится его свободный стиль.