System.invalidoperationException: последовательность содержит более одного элемента для Dotnet TestContainerC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 System.invalidoperationException: последовательность содержит более одного элемента для Dotnet TestContainer

Сообщение Anonymous »

Журнал ошибок:

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

Standard Output Messages:
[testcontainers.org 00:00:03.98] Reuse is an experimental feature.  For more information, visit: https://dotnet.testcontainers.org/api/resource_reuse/
-> warning: The previous ScenarioContext was already disposed.
Failed EmailAddressesAreValidatedByTheForgottenPasswordScreen("it uses unquoted backslashes",null) [26 ms]
Error Message:
System.InvalidOperationException : Sequence contains more than one element
TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
Stack Trace:
at System.Linq.ThrowHelper.ThrowMoreThanOneElementException()
at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source, Boolean&  found)
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
at DotNet.Testcontainers.Containers.DockerContainer.UnsafeCreateAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 441
at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 306
at [MYCOMPANY].[MYAPP].UI.Tests.Hooks.ConfigurationHooks.SetConfiguration(IObjectContainer objectContainer) in /home/runner/actions-runner/_work/[MYAPP]/[MYAPP]/Tests/[MYCOMPANY].[MYAPP].UI.Tests/Hooks/ConfigurationHooks.cs:line 48
at Reqnroll.Bindings.AsyncMethodHelper.ConvertTaskOfT(Task task, Boolean getValue)
at Reqnroll.Bindings.BindingDelegateInvoker.InvokeDelegateAsync(Delegate bindingDelegate, Object[] invokeArgs, ExecutionContextHolder executionContext)
at Reqnroll.Bindings.BindingInvoker.InvokeBindingAsync(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, DurationHolder durationHolder)
at Reqnroll.Infrastructure.TestExecutionEngine.InvokeHookAsync(IAsyncBindingInvoker invoker, IHookBinding hookBinding, HookType hookType)
at Reqnroll.Infrastructure.TestExecutionEngine.FireEventsAsync(HookType hookType)
at Reqnroll.Infrastructure.TestExecutionEngine.FireEventsAsync(HookType hookType)
at Reqnroll.Infrastructure.TestExecutionEngine.OnFeatureStartAsync(FeatureInfo featureInfo)
at Reqnroll.TestRunner.OnFeatureStartAsync(FeatureInfo featureInfo)
at [MYCOMPANY].[MYAPP].UI.Tests.Features.PasswordAndEmailValidationFeature.TestInitializeAsync()
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](TestExecutionContext context, Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(TestExecutionContext context, Func`1 invoke)
at NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUpOrTearDownMethod(TestExecutionContext context, IMethodInfo method)
at NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUp(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.c__DisplayClass1_0.b__0()
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
--TearDown
at Reqnroll.Infrastructure.TestExecutionEngine.OnScenarioEndAsync()
at Reqnroll.TestRunner.OnScenarioEndAsync()
at [MYCOMPANY].[MYAPP].UI.Tests.Features.PasswordAndEmailValidationFeature.TestTearDownAsync()
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.GetResult()
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](TestExecutionContext context, Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(TestExecutionContext context, Func`1 invoke)
at NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUpOrTearDownMethod(TestExecutionContext context, IMethodInfo method)
at NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunTearDown(TestExecutionContext context)
Приведенное выше сообщение об ошибке происходит, когда я пытаюсь настроить TestContainer в моем скрипте теста автоматизации для запуска сервера MailDev, чтобы перехватить электронную почту для отправителя почты для пользователей.

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

[BeforeFeature(Order = TestRunSequence.RegisterObjectContainer)]
public static async Task SetConfiguration(IObjectContainer objectContainer)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange:  true)
.AddEnvironmentVariables() // Load environment variables
.AddUserSecrets()
.Build();
objectContainer?.RegisterInstanceAs(configuration);

var mailDevContainer= new ContainerBuilder()
.WithImage("maildev/maildev:latest")
.WithPortBinding(1080, true)
.WithPortBinding(1025, true)
.WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(1080))
.WithReuse(true)
.WithLabel("maildev-container", "MailDev")
.WithPortBinding(1080, 1080)
.WithPortBinding(1025, 1025)
.Build();

if (!isStarted)
{
await mailDevContainer.StartAsync();
isStarted = true;
}

objectContainer?.RegisterInstanceAs(mailDevContainer);

***(More code irrelevant to this issue is here)***
}
< /code>
Похоже, он жалуется на строку 48 (Tests/[MYCOMPANY].[MYAPP].UI.Tests/Hooks/ConfigurationHooks.cs:line 48
); что отражает строку await maildevcontainer.startasync ();
Я не знаю, почему это происходит, но я также вижу ошибку перед этим упомянутым сообщением об ошибке: docker.dotnet.dockerapiexcept Программирование внешней подключения в конечной точке Adoring_hopper (397aeaf67af9014dc4341dfedc0494e52219ceb718d00fce6160bd81e8c69a74): привязка для 0.0.0.0:1025. Не удалось: Порт уже атакует ». Вы можете помочь идентифицировать это?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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