public async Task RunTestCases(TestCaseDataObject testData) { var testGuid = Guid.NewGuid().ToString(); var fileName = $"TestFile-{testGuid}.txt"; var testCase = testData.GetObject <TestCase>(); Logger.LogInformation(JsonConvert.SerializeObject(testCase, Formatting.Indented)); var options = TestClientOptions[testCase.HostBot]; var runner = new XUnitTestRunner(new TestClientFactory(testCase.ChannelId, options, Logger).GetTestClient(), TestRequestTimeout, ThinkTime, Logger); // Execute the first part of the conversation. var testParams = new Dictionary <string, string> { { "DeliveryMode", testCase.DeliveryMode }, { "TargetSkill", testCase.TargetSkill }, { "FileName", fileName }, { "TestGuid", testGuid } }; await runner.RunTestAsync(Path.Combine(_testScriptsFolder, testCase.Script), testParams); // Create a new file to upload. await using var stream = File.Create(Directory.GetCurrentDirectory() + $"/Skills/FileUpload/{fileName}"); await using var writer = new StreamWriter(stream); await writer.WriteLineAsync($"GUID:{testGuid}"); writer.Close(); // Upload file. await using var file = File.OpenRead(Directory.GetCurrentDirectory() + $"/Skills/FileUpload/{fileName}"); await runner.UploadAsync(file); // Execute the rest of the conversation. await runner.RunTestAsync(Path.Combine(_testScriptsFolder, "FileUpload2.json"), testParams); }