Как использовать .testsettings
файл, запускающий модульные тесты через vstest.console.exe
? Я создал пустое решение Visual Studio, создал пустой проект модульного теста, добавил файл Local.testsettings
в качестве элемента решения.
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
}
}
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="Local" id="1109524d-9809-4423-b7fa-fad429ebfd8d" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment enabled="false" />
<Execution hostProcessPlatform="MSIL">
<TestTypeSpecific>
<UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
<AssemblyResolution>
<TestDirectory useLoadContext="true" />
</AssemblyResolution>
</UnitTestRunConfig>
</TestTypeSpecific>
<AgentRule name="LocalMachineDefaultRole">
</AgentRule>
</Execution>
<Properties />
</TestSettings>
Все в порядке, когда я запускаю свои тесты с помощью следующей команды:
>> "[path to vstest]/vstest.console.exe" [path to project]\UnitTestProject1.dll
Команда ниже выдает ошибку.
"[path to vstest]/vstest.console.exe" [path to project]\UnitTestProject1.dll /Settings:[path to settings file]\Local.testsettings
Предупреждение: файл testsettings или runsettings с ForcedLegacyMode, установленным на true, не поддерживаются адаптером MSTest V2. Нет доступных тестов в [путь] \ UnitTestProject1.dll. Убедитесь, что средство обнаружения и исполнители тестов зарегистрированы, а настройки версии платформы и фреймворка соответствуют требованиям, и повторите попытку.
Кроме того, путь к тестовым адаптерам можно указать с помощью команды / TestAdapterPath. Пример / TestAdapterPath :.
Поэтому я добавил параметр /TestAdapterPath:[project path/bin/Debug]
. Здесь находится Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
с первооткрывателем и исполнителем. Но я получил ту же ошибку без последнего предложения об указании тестового адаптера.
Мне было интересно, сможет ли кто-нибудь решить эту проблему.