Я столкнулся со странным поведением в Nunit с Generi c TestFixture. Я использую командную строку, чтобы создать тестовый проект dotnet new nunit
и скопировать вставленный код из вики NUnit:
[TestFixture(typeof(ArrayList))]
[TestFixture(typeof(List<int>))]
public class IList_Tests<TList> where TList : IList, new()
{
private IList list;
[SetUp]
public void CreateList()
{
this.list = new TList();
}
[Test]
public void CanAddToList()
{
list.Add(1); list.Add(2); list.Add(3);
Assert.AreEqual(3, list.Count);
}
}
Вот .csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="nunit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NetCoreEFCore3API\NetCoreEFCore3API.csproj" />
</ItemGroup>
</Project>
Я нажимаю Run All Tests
сверху класса и вот результат. В списке нет ни одного теста, который выполняется независимо от того, существует ли один CanAddToList
метод теста. Работает нормально, если нет Generi c для TestFixture .
Примечание dotnet test
отлично работает как для обобщенных случаев c, так и для общих c.
Пожалуйста, дайте мне несколько советов для решения этой проблемы. Я в настоящее время использую .Netcore и VS Code.