Ich möchte die ersten und zweiten Tests nacheinander für jede zurückgegebene Datenmenge ausführen, während ich den ReportFilePath auf eine Variable festlege jedes Mal. Ich konnte es einen Test machen einfach, aber ich denke, das ist zu großC# Nunit - zwei parallele Tests bei der Übergabe von Quelldaten mit Renditerückgaben ausführen
private string reportFilePath;
[Test]
[TestCaseSource(typeof(TestData.SwiftReporting), "GenerateDailyLargeExposureReport")]
[Order(4)]
public async Task ShouldGenerateDailyLargeExposureReport(int year, int month, int day)
{
ReportResponseModel dailyLargeExposureReport = new ReportResponseModel();
DateTime date = new DateTime(year, month, day).Date;
string formattedDate = date.ToString("d");
dailyLargeExposureReport = await ReportLogic.RequestReport(date, (int)ReportsEnum.DailyLargeExposureReport, null, AuthToken);
dailyLargeExposureReport.Should().NotBeNull();
reportFilePath = dailyLargeExposureReport.FilePath;
}
[Test]
[TestCaseSource(typeof(TestData.SwiftReporting), "DownloadDailyLargeExposureReport")]
[Order(8)]
public async Task ShouldDownloadDailyLargeExposureReport(int accountCount)
{
DailyLargeExposureReportModel outputReport = new DailyLargeExposureReportModel();
outputReport = (DailyLargeExposureReportModel)await ReportLogic.DownloadReport(reportFilePath, ReportsEnum.DailyLargeExposureReport, AuthToken);
List<DailyLargeExposureAccountModel> reportAccounts = outputReport.Accounts;
reportAccounts.Count().Should().Be(7);
}
Hier sind meine Daten:
public static IEnumerable<TestCaseData> GenerateDailyLargeExposureReport
{
get
{
yield return new TestCaseData(2017, 1, 2)
.SetName("Generate DLE report for Account1, Jan 2");
yield return new TestCaseData(2017, 1, 3)
.SetName("Generate DLE report for Account1, Jan 3");
}
}
public static IEnumerable<TestCaseData> DownloadDailyLargeExposureReport
{
get
{
yield return new TestCaseData(3)
.SetName("Get data for Account1, Jan 2");
yield return new TestCaseData(5)
.SetName("Get data for Account1, Jan 3");
}
}
Also ich beide Tests für den ersten Satz von Daten in jedem IEnumerable ausführen möchten, dann Mach es nochmal mit dem zweiten Set.