Проблема связана с NUnit
(а не Fake.NET
) и возникает, когда сгенерированное имя теста включает в себя любые аргументы, значения которых могут меняться между запусками.
Тестовый случай ниже( не использует Fake.NET
) будет страдать от этой же проблемы, так как DateTime
меняется каждый раз.
new object[] { DateTime.Now.ToString(), "TestUser" }
(отображаемое) имя этого теста будет: InvalidLogin("11/12/2018 20:10:59", "TestUser")
но InvalidLogin("11/12/2018 20:15:59", "TestUser")
через 5 минут.
Один из способов решить эту проблему - назначить тесту фиксированное имя, которое не включает эти значения динамических параметров.
Для этого измените тип возвращаемого значения GetInvalidLoginCredentials
с Object[,]
на IEnumerable<TestCaseData>
.
Класс TestCaseData
имеет метод SetName
для отмены именитеста.
Ваш TestCaseSource
метод, описанный выше, будет выглядеть следующим образом, где «игнорируемый» тест теперь будет иметь фиксированное имя InvalidLogin-WithFakeData
.
public static IEnumerable<TestCaseData> GetInvalidLoginCredentials()
{
TestCaseData[] FD = {
new TestCaseData(Name.First(), Internet.Password(10, 12)).SetName("InvalidLogin-WithFakeData"),
new TestCaseData("TestUser", ""),
new TestCaseData("", "TestPassword")
};
return FD;
}
.