Пример кода игрушки:
public abstract class testBase
{
public testBase()
{
//Some common test setup code, which will initialize ManagerClass
}
}
public class someTests: testBase
{
public someTests()
{
//someTests-specific constructor code.
}
[Theory]
[PropertyData("MyTestData")]
public void test1(Foo foo)
{
//Use foo to do a test
}
public static IEnumerable<object[]> MyTestData
{
get
{
yield return new object[] { ManagerClass.CreateANewFoo(1) };
yield return new object[] { ManagerClass.CreateANewFoo(42) };
}
}
}
В приведенном выше примере, если я специально запускаю test1 (я использую Resharper, но проблема также возникает, когда я использую графический интерфейс xUnit), мой тест завершается ошибкой, потому что кажется, что ни конструкторы testBase, ни конструкторы someTests не выполняются. Следовательно, вызов ManagerClass.CreateANewFoo() выдает NullReference.
Если я запускаю все тесты в someTests или любой другой отдельный тест, конструктор выполняется, как и ожидалось, и тесты продолжаются ожидаемым образом. Единственное, что отличает test1 от других, это то, что он использует атрибут PropertyData.
Любые идеи, почему это происходит/что я делаю неправильно?