Выполнить тесты на XUNIT в теории последовательно (не параллельно)C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Выполнить тесты на XUNIT в теории последовательно (не параллельно)

Сообщение Anonymous »

Мы проводим файлы конфигурации для разных сред в нашем репо. В рамках процесса CI я хотел бы сделать, чтобы эти файлы конфигурации всегда действительны. Для этого я создал этот тест, который копирует конфигурации, пытается запустить сервер и сразу же закрывает его. < /P>

Код: Выделить всё

public class DeployConfigurationValidationTests
{
#region Private Fields

private readonly ITestOutputHelper _testOutputHelper;
private const string ServerBaseUrl = "http://localhost:44315";

#endregion

#region Constructors

public DeployConfigurationValidationTests(ITestOutputHelper testOutputHelper)
{
_testOutputHelper = testOutputHelper;
}

#endregion

#region Public Tests

/// 
/// Copies all files contained in the directory specified by parameter  to the executing directory and launches the application with this configuration.
/// 
/// The path of the directory containing the deploy configurations
[Theory]
[InlineData("../../../../../Configurations/Dev/")]
[InlineData("../../../../../Configurations/Int/")]
[InlineData("../../../../../Configurations/Prod/")]
public async Task ValidateDeployConfigurationsTest(string deployConfigDirectoryPath)
{
// Arrange (copy deploy configurations into directory where the test is running)
var currentDirectory = Directory.GetCurrentDirectory();
var configurationFilePaths = Directory.GetFiles(deployConfigDirectoryPath);
foreach (var configurationFilePath in configurationFilePaths)
{
var configurationFileName = Path.GetFileName(configurationFilePath);
var destinationFilePath = Path.Combine(currentDirectory, configurationFileName);
File.Copy(configurationFilePath, Path.Combine(currentDirectory, destinationFilePath), true);
_testOutputHelper.WriteLine($"Copied file '{Path.GetFullPath(configurationFilePath)}' to '{destinationFilePath}'");
}

// Act (launch the application with the deploy config)
var hostBuilder = Program.CreateHostBuilder(null)
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder.UseUrls(ServerBaseUrl);
webHostBuilder.UseTestServer();
});

using var host = await hostBuilder.StartAsync();

// Assert
// Nothing to assert, if no error occurs, the config is fine
}

#endregion
}
Тест работает нормально при запуске каждого inlinedata индивидуально, но не сбои при запуске теории, потому что тесты работают параллельно по умолчанию. Это, очевидно, не будет работать над запуском нескольких (тестовых) серверов на одном и том же порте, используя один и тот же DLL.>

Подробнее здесь: https://stackoverflow.com/questions/693 ... t-parallel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Выполнить тесты на XUNIT в теории последовательно (не параллельно)
    Anonymous » » в форуме C#
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • XUnit — отображение названий тестов для данных участников теории (TestCase)
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Данные, подобные теории XUnit, на уровне класса, а НЕ метода.
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • FastAPI выполняет вызовы API последовательно, а не параллельно.
    Гость » » в форуме Python
    0 Ответы
    35 Просмотры
    Последнее сообщение Гость
  • Динамическая обработка параллельной коллекции параллельно по группам, но последовательно внутри каждой группы.
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»