Nunit TestFixtureData, 테스트 픽스처가 있습니다.
Visual Studio 테스트 탐색기에서 테스트가 실행되지 않음으로 표시됩니다. 나는 그들이 일하도록하고 싶다. 빨강/초록색 테스트로 실행하고 싶습니다.Nunit TestFixtureData가 테스트를 실행하지 않습니다.
나는 테스트가 실행되지 않은 Foo Factory를 실행하지 않고 이러한 테스트를 실행하고 작동하지 않습니다.
Test 및 TestCase가있는 다른 TestFixtureData가 있는데 제대로 작동합니다.
로직을 테스트에 합격하기를 원하지 않습니다. 그게 무엇인지 알아요.
테스트 탐색기에서 테스트를 프로파일 링 할 수 있으며 "경로에 잘못된 문자가 표시됩니다." 출력에. 관련성이 있는지 확실하지 않습니다.
/// <summary>
/// This is a TestFixtureData test. See https://github.com/nunit/docs/wiki/TestFixtureData for more information
/// </summary>
[TestFixtureSource(typeof(FooTest), "FixtureParms")]
public class FooTestFixture
{
private readonly Foo foo;
private readonly Guid fooId;
public FooTestFixture(Foo foo, Guid fooId)
{
this.foo = foo;
this.fooId = fooId;
}
[Test]
public void FooId_IsSet()
{
//Arrange
//Act
var value = foo.FooId;
//Assert
Assert.AreNotEqual(Guid.Empty, value);
}
[TestCase("A")]
[TestCase("B")]
[TestCase("C")]
public void ActivityList_Contains(string activity)
{
//Arrange
//Act
var value = foo.ActivityList;
//Assert
Assert.IsTrue(value.Contains(activity));
}
}
public class FooTest
{
public static IEnumerable FixtureParms
{
get
{
var fooId = Guid.NewGuid();
var foo = new Foo() { FooId = fooId };
yield return new TestFixtureData(FooFactory.Edit(foo), fooId);
yield return new TestFixtureData(FooFactory.Create(fooId), fooId);
yield return new TestFixtureData(foo, fooId);
}
}
}
FooFactory를 사용하면 간단합니다. 테스트에서 실패하지만 테스트가 실행되지 않는다는 것을 알고 있습니다.
public static Foo Create(Guid fooId)
{
return new Foo();
}
public static Foo Edit Edit(Foo foo)
{
return new Foo();
}
코드가 나에게 적합하지 않습니다. FooTestFixture의 생성자는 Foo와 guid를 취하지 만, TestFixtureAttribute에 Type과 문자열을 전달합니다. NUnit은이 클래스를 전혀 사용할 수 없다고 결정하고 무효로 표시합니다. 테스트 탐색기는 클래스 (메소드 만)에 대한 정보를보고하지 않기 때문에 오류가 실행되는 동안 사라질 수 있습니다. NUnit 콘솔 러너로 실행하면 아마도 조명기가 무효라고 말했을 것입니다. – Charlie