8afad88241
Базовый класс IntegrationTestBase (IAsyncLifetime) закрывает все открытые документы КОМПАС после КАЖДОГО теста (DocumentService.CloseAllAsync) — чтобы не копились вкладки-пустышки и упавший Assert не оставлял открытый документ. Все интеграционные тест-классы переведены на него (: base(fx)); индивидуальные finally CloseAsync сохранены как первичная очистка. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 lines
1.1 KiB
C#
22 lines
1.1 KiB
C#
using Kompas.Mcp.Core.Documents;
|
|
|
|
namespace Kompas.Mcp.Tests.Integration;
|
|
|
|
/// <summary>
|
|
/// Базовый класс интеграционных тестов: после КАЖДОГО теста закрывает все открытые документы
|
|
/// КОМПАС без сохранения, чтобы не копились вкладки-пустышки (и чтобы упавший Assert не оставлял
|
|
/// открытый документ). xUnit создаёт новый экземпляр тест-класса на каждый тест-метод, поэтому
|
|
/// <see cref="DisposeAsync"/> вызывается per-test — это и есть точка очистки.
|
|
/// </summary>
|
|
public abstract class IntegrationTestBase : IAsyncLifetime
|
|
{
|
|
private readonly DocumentService _cleanupDocs;
|
|
|
|
protected IntegrationTestBase(KompasFixture fx)
|
|
=> _cleanupDocs = new DocumentService(fx.Session, fx.Dispatcher);
|
|
|
|
public Task InitializeAsync() => Task.CompletedTask;
|
|
|
|
public Task DisposeAsync() => _cleanupDocs.CloseAllAsync();
|
|
}
|