Resharper не удается отладить теорию xunit с помощью ClassData - PullRequest
0 голосов
/ 28 ноября 2018

Недавно я попытался запустить тестовый случай Theory с ClassData в качестве входного теста.Это абсолютно нормальное поведение, и раньше оно работало.Предоставленный код работает, и я легко могу запустить все тесты в Visual Studio 2017 (15.9.2) с xunit 2.1 до 2.4.1 и Resharper 2018.2.3 .

Проблема: Когда я пытаюсь отладить тест Теории, отладчик запускается, но останавливается перед остановкой моей точки останова в тестовом случае Теории.Resharper показывает ошибку «Невозможно найти подходящие тесты».Насколько я мог воспроизвести эту ошибку, это происходит только тогда, когда я отлаживаю контрольный пример Теории, который использует класс (не примитивный тип) как T в TheoryData.

enter image description here

TestMethod_StringClassData: использует StringClassData с TheoryData типа string.TestMethod_CultureInfoClassData: не входит в тестовый пример при попытке его отладки.Единственное отличие состоит в том, что тестовый параметр - это не строка, а объект CultureInfo.

Контрольные примеры для воспроизведения ошибки:

public class UnitTest1
{
    [Theory]
    [ClassData(typeof(StringClassData))]
    public void TestMethod_StringClassData(string cultureInfo)
    {

    }

    [Theory]
    [ClassData(typeof(CultureInfoClassData))]
    public void TestMethod_CultureInfoClassData(CultureInfo cultureInfo)
    {

    }

    public class StringClassData : TheoryData<string>
    {
        public StringClassData()
        {
            this.Add("de");
        }
    }

    public class CultureInfoClassData : TheoryData<CultureInfo>
    {
        public CultureInfoClassData()
        {
            this.Add(new CultureInfo("de"));
        }
    }
}

Обновление 1 : если я создаю новый csproj VS2017 с Microsoft.NET.Test.Sdk и выбираю TargetFramework netcoreapp2.1, все снова работает нормально!Если я выберу TargetFramework net47, отладка Теории xunit невозможна.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
    <PackageReference Include="xunit" Version="2.4.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
  </ItemGroup>

</Project>
...