1
Rebus에서 버스 시작 또는 종료시 대기열을 지우는 구성 설정이 있습니까? 이 작업을 수행해야하는 이유는 통합 테스트를 위해 두 개의 Rebus 인스턴스가 실행 중이며 테스트에 실패하면 실패한 메시지가 후속 테스트 실행에서 다시 시도되지 않기를 바랍니다.버스 시작 또는 중지시 대기열 지우기
다음은 메시지를 보내는 통합 테스트 클라이언트에 대한 것입니다. RebusHost 테스트중인 시스템의 주위에 단지 래퍼 참고 :
using Rebus.Configuration;
using Rebus.Transports.Msmq;
namespace MT.Testing.Integration
{
[TestClass]
public class IntegrationTestFixture
{
private static IMtHost _host;
[AssemblyInitialize]
public static void IntegrationTestInitialize(TestContext testContext)
{
_host = new RebusHost();
_host.Start();
}
[AssemblyCleanup]
public static void IntegrationTestCleanup()
{
_host.Stop();
}
public static IBus GetClientBus(IContainerAdapter containerAdapter)
{
return Configure.With(containerAdapter)
.Transport(t => t.UseMsmq("mt.testing.integration.client.input", "mt.testing.integration.client.error"))
.MessageOwnership(d => d.Use(new IntegrationMessageOwnership()))
.Subscriptions(s => s.StoreInMemory())
.Sagas(s => s.StoreInMemory())
.CreateBus().Start();
}
}
public class IntegrationMessageOwnership : IDetermineMessageOwnership
{
public string GetEndpointFor(Type messageType)
{
return "mt.testing.integration.input";
}
}
}
감사합니다. 그 클래스는 내부적 이었기 때문에 적절한 유틸리티를 사용하여 유틸리티 프로젝트로 복사해야했습니다. –
오른쪽, 죄송합니다! 나는 그것을 잊었다 :( – mookid8000