Подтвердить что ты не робот

Как преобразовать существующую сборку в сборку ms unit test?

В Visual Studio 2010 Pro, как я могу легко преобразовать классическую сборку в сборку ms unit test?

Есть ли флаг для активации в файле .csproj?

4b9b3361

Ответ 1

Проблема в том, что тестовые проекты "помечены" в файле проекта - вы можете преобразовать библиотеку классов в тестовый проект, выполнив следующие четыре простых шага:

  • Разгрузите файл проекта (.prj) и откройте его для обновления.
  • добавьте следующую строку в проект
    С#:

    <Project>
     <PropertyGroup>
      <AssemblyName>....</AssemblyName>
      <!-- add this line below -->
      <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     </PropertyGroup>
    </Project>
    

    VB - <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F- 5ABD9991F28F}</ProjectTypeGuids>

  • Перезагрузите проект назад
  • Запустите вас (сейчас работающие) тесты

Обратите внимание, что вам нужно вручную добавить ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll, чтобы иметь возможность использовать атрибуты, связанные с тестированием

Обновление: в предстоящем MSTest V2 это не будет nesessery, так как MSTest становится пакетом NuGet, который работает так же, как NUnit/XUnit

Ответ 2

В Visual Studio 2017 вы можете добавить пакеты MSTest.TestAdapter и MSTest.TestFramework в ваш проект С#, а затем использовать [TestClass] с [TestMethod]. Они будут автоматически обнаружены и перечислены в Test Explorer. Добавленное вручную ProjectTypeGuids не требуется для включения тестов.

// MyFancyClassTests.cs

namespace MyTests
{
    using Microsoft.VisualStudio.TestTools.UnitTesting;

    [TestClass]
    public class MyFancyClassTest
    {
        private readonly MyFancyClass _MyFancyClass;

        public MyFancyClassTest()
        {
            _MyFancyClass= new MyFancyClass();
        }

        [TestMethod]
        public void MyFancyClass_UninitializedName_ReturnsEmptyString()
        {
            Assert.AreEqual(string.Empty, _MyFancyClass.Name);
        }
    }
}

Ответ 3

Unit Test Проект - это только библиотека классов, которые имеют классы с атрибутом [TestClass], а файл .csproj не имеет никаких флагов. Вы можете добавить класс в свой проект и установить атрибут [TestClass], и это будет тестовый класс.