Я пытаюсь создать тестовые сценарии для моих тестов в моем проекте ядра dotnet.Но Resharper показывает, что они не сгруппированы в окне «сессий модульного тестирования» Resharper
Мой код:
public class Calculator
{
public static int Multiply(int x, int y)
{
return x * y;
}
}
[TestFixture]
public class CalculatorTests
{
private static IEnumerable<TestCaseData> CalculatorTestCaseData
{
get
{
yield return new TestCaseData(3, 4, 12).SetName("Multiply 3 and 4 should be 12");
yield return new TestCaseData(4, 5, 20).SetName("Multiply 4 and 5 should be 20");
}
}
private static IEnumerable<TestCaseData> CalculatorTestCaseDataWithZero
{
get
{
yield return new TestCaseData(0, 4, 12).SetName("Multiply 0 and 4 should be 0");
yield return new TestCaseData(5, 0, 20).SetName("Multiply 5 and 0 should be 0");
}
}
[Test]
[TestCaseSource(typeof(CalculatorTests), nameof(CalculatorTestCaseData))]
[TestCaseSource(typeof(CalculatorTests), nameof(CalculatorTestCaseDataWithZero))]
public void Calculate_Success(int x, int y, int expected)
{
Calculator.Multiply(x, y).Should().Be(expected);
}
}
в основном проекте DotNet Resharper показывает
в каркасе dotnet показывает
в каркасных тестах сгруппированных.Мне нужно это в моем приложении с ядром dotnet.
Кто-нибудь может мне помочь?
Я использую:
- Ядро dotnet - 2.1
- Nunit - 3.10.1
- NUnitTestAdapter - 3.10.0
- Microsoft.NET.Test.Sdk - 15,8.0
- Resharper - 2018.2.3
- VS community 2017 - 15.8.2
- FluentAssertions - 5.4.2
Обновление
Случай, когда resharper не распознает мои тесты
public class Calculator
{
public static int Multiply(MyInt x, MyInt y)
{
return x.Value * y.Value;
}
}
[TestFixture]
public class CalculatorTests
{
private static IEnumerable<TestCaseData> CalculatorTestCaseData
{
get
{
yield return new TestCaseData(new MyInt(3), new MyInt(4), new MyInt(12)).SetName("2132");
yield return new TestCaseData(new MyInt(4), new MyInt(5), new MyInt(20)).SetName("123123asdas");
}
}
[Test]
[TestCaseSource(typeof(CalculatorTests), nameof(CalculatorTestCaseData))]
public void Calculate_Success(MyInt x, MyInt y, MyInt expected)
{
Calculator.Multiply(x, y).Should().Be(expected.Value);
}
}
public class MyInt
{
public int Value;
public MyInt(int value)
{
Value = value;
}
}