Ich benutze XUnit 2.0 collection fixtures, um eine gemeinsame Datenbank Setup/Teardown zwischen einer Reihe von verschiedenen Testklassen zu teilen. Das Fixture stellt auch einige Helfereigenschaften zur Verfügung, also injiziere ich es in jede Testklasse.Collection Fixture wird nicht injizieren
ich das Beispiel in der Dokumentation neu erstellt, aber wenn ich den Test ausführen, es nicht sofort mit:
Folgende Konstruktorparameter haben nicht passende Fixturedaten: IntegrationTestFixture Befestigung
Diese scheint unabhängig davon zu passieren, ob ich xUnit Fakten oder Theorien verwende oder welchen Testläufer ich verwende.
Fixture:
public class IntegrationTestFixture : IDisposable
{
public IntegrationTestFixture()
{
// (setup code)
this.GeneratedTestName = [randomly generated];
}
public void Dispose()
{
// (teardown code)
}
public string GeneratedTestName { get; private set; }
}
Sammlung Definition:
[CollectionDefinition("Live tests")]
public class IntegrationTestCollection : ICollectionFixture<IntegrationTestFixture>
{
// Intentionally left blank.
// This class only serves as an anchor for CollectionDefinition.
}
Test:
[CollectionDefinition("Live tests")]
public class SomeTests
{
private readonly IntegrationTestFixture fixture;
public SomeTests(IntegrationTestFixture fixture)
{
this.fixture = fixture;
}
[Fact]
public void MyTestMethod()
{
// ... test here
}
}