Привет всем У меня есть проблема с генерацией тестовых случаев для TestCaseSource. Я написал этот код для тестов:
using System;
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
namespace HeapSort.Tests
{
[TestFixture]
public class Tests
{
[Test, TestCaseSource(typeof(TestsGenerator),"TestCases")]
public void IsEqualCollections(int[] received, int[] expected)
{
CollectionAssert.AreEqual(received, expected);
}
}
public class TestsGenerator
{
public static IEnumerable<TestCaseData> TestCases
{
get
{
for (var i = 0; i < 25; i++)
{
int[] t1 = GenerateCollection(i), t2 = t1.ToArray();
HeapSort.Sort(t1);
Array.Sort(t2);
yield return new TestCaseData(t1, t2);
}
}
}
private static int[] GenerateCollection(int seed)
{
var rnd = new Random(seed+DateTime.Now.Millisecond);
int size = rnd.Next(100, 10000);
int[] array = new int[size];
for (var i = 0; i < size; i++)
array[i] = rnd.Next(-100, 100);
return array;
// return Enumerable
// .Repeat(100, rnd.Next(100, 10000))
// .Select(i => rnd.Next(-100, 100))
// .ToArray();
}
}
}
Где проблема? Вместо того, чтобы получить 25 тестов, я получаю от 1 до 8. И часто в начальной точке тестирования это показывает, что тесты 7/8, и в конце есть только один контрольный пример.
Как мне решить эту проблему?
UPD1 : Что интересно, когда я запускаю тесты через консоль, я обрабатываю все 25 тестов, как мне достичь тех же результатов через графический интерфейс!?
P.S. извините за мой плохой английский.
Возможно, стоит упомянуть, что я работаю под Ubuntu в Rider