Моя установка — NUnit (последняя, 2.6.что-то), VS13 с R#8 и Win7. К моему большому удивлению, я заметил, что когда я использую атрибут Combinatorial, среда IDE работает очень, мучительно медленно. Мы говорим об ожидании в затененном окне VS в течение нескольких секунд после каждого нажатия клавиши!
Я гуглил это, но, похоже, нет подходящих хитов. Я подозреваю, что виновата наша локальная установка (как можно не установить NUnit и R#?!), но другим может быть интересно узнать, что делать, когда это происходит.
Мы заметили, что задержка увеличивается экспоненциально по мере увеличения количества тестовых случаев. Это пример одного из способов.
[Test]
[Combinatorial]
public void AddWaveformTest(
[Values(null, "", "sec", "stringThatMayBulky")] string s1,
[Values(null, "", "sec", "stringThatMayBulky")] string s1,
[Values(null, "", "sec", "stringThatMayBulky")] string s3,
[Values(null, "", "sec", "stringThatMayBulky")] string s4,
[Values(int.MinValue, int.MaxValue, -1, 0, 1)] int i1,
[Values(null, "", "sec", "stringThatMayBulky")] string s5,
[Values(null, "", "sec", "stringThatMayBulky")] string s6,
[Values(null, "", "sec", "stringThatMayBulky")] string s7,
[Values(null, "", "sec", "stringThatMayBulky")] string s8,
[Values(int.MinValue, int.MaxValue, -1, 0, 1)] int i2)
{
...
}
Это немного больше 26 миллионов операций, что может быть много, но с компьютерной точки зрения это не должно быть так уж плохо. Верно? Я также заметил, что непосредственной причиной является не столько атрибут Combinatorial, сколько атрибут Values. Когда я комментирую последнее, все снова работает, а комментирование первого не приносит улучшения...