Open
Description
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
If you create a test builder via DistributedApplicationTestingBuilder.Create();
in a project that has an indirect transitive reference to Aspire.Hosting.AppHost
, the test host fails with the error Ensure that your project references 'Aspire.Hosting.AppHost'
, even though the project does have a reference to that assembly.
Fix is to ensure you have a direct dependency, not a transitive one
Expected Behavior
The test host should either support the transitive dependency, or the error message should explicitly call out that you need a direct (non transitive) dependency)
Steps To Reproduce
dotnet new aspire-starter --test-framework nunit
Add the following test
[Test]
public async Task BuilderTest()
{
var builder = DistributedApplicationTestingBuilder.Create();
await using var app = await builder.BuildAsync().WaitAsync(DefaultTimeout);
}
run dotnet test
Exceptions (if any)
System.InvalidOperationException : No application host assembly was found. Ensure that your project references 'Aspire.Hosting.AppHost'.
Stack Trace:
at Aspire.Hosting.Testing.DistributedApplicationTestingBuilder.TestingBuilder.<CreateInnerBuilder>g__FindApplicationAssembly|3_2() in /_/src/Aspire.Hosting.Testing/DistributedApplicationTestingBuilder.cs:line 315
at Aspire.Hosting.Testing.DistributedApplicationTestingBuilder.TestingBuilder.<>c__DisplayClass3_0.<CreateInnerBuilder>b__0(DistributedApplicationOptions applicationOptions, HostApplicationBuilderSettings hostBuilderOptions) in /_/src/Aspire.Hosting.Testing/DistributedApplicationTestingBuilder.cs:line 290
at Aspire.Hosting.Testing.TestingBuilderFactory.System.IObserver<System.Collections.Generic.KeyValuePair<System.String,System.Object>>.OnNext(KeyValuePair`2 value) in /_/src/Aspire.Hosting.Testing/DistributedApplicationEntryPointInvoker.cs:line 282
at System.Diagnostics.DiagnosticListener.Write(String name, Object value)
at System.Diagnostics.DiagnosticSource.Write[T](String name, T value)
at Aspire.Hosting.DistributedApplicationBuilder.LogBuilderConstructing(DistributedApplicationOptions appBuilderOptions, HostApplicationBuilderSettings hostBuilderOptions) in /_/src/Aspire.Hosting/DistributedApplicationBuilder.cs:line 484
at Aspire.Hosting.DistributedApplicationBuilder..ctor(DistributedApplicationOptions options) in /_/src/Aspire.Hosting/DistributedApplicationBuilder.cs:line 134
at Aspire.Hosting.DistributedApplicationBuilder..ctor(String[] args) in /_/src/Aspire.Hosting/DistributedApplicationBuilder.cs:line 94
at Aspire.Hosting.Testing.TestingBuilderFactory.CreateBuilder(String[] args, Action`2 onConstructing) in /_/src/Aspire.Hosting.Testing/DistributedApplicationEntryPointInvoker.cs:line 230
at Aspire.Hosting.Testing.DistributedApplicationTestingBuilder.TestingBuilder.CreateInnerBuilder(String[] args, Action`2 configureBuilder) in /_/src/Aspire.Hosting.Testing/DistributedApplicationTestingBuilder.cs:line 288
at Aspire.Hosting.Testing.DistributedApplicationTestingBuilder.TestingBuilder..ctor(String[] args, Action`2 configureBuilder) in /_/src/Aspire.Hosting.Testing/DistributedApplicationTestingBuilder.cs:line 281
at Aspire.Hosting.Testing.DistributedApplicationTestingBuilder.Create(String[] args, Action`2 configureBuilder) in /_/src/Aspire.Hosting.Testing/DistributedApplicationTestingBuilder.cs:line 135
at Aspire.Hosting.Testing.DistributedApplicationTestingBuilder.Create(String[] args) in /_/src/Aspire.Hosting.Testing/DistributedApplicationTestingBuilder.cs:line 120
at aspirequickcotnainer.Tests.WebTests.ShortLivedContainer() in S:\aspirequickcotnainer\aspirequickcotnainer.Tests\WebTests.cs:line 13
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.GetResult()
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Execution.SimpleWorkItem.<>c__DisplayClass3_0.<PerformWork>b__0()
at NUnit.Framework.Internal.ContextUtils.<>c__DisplayClass1_0`1.<DoIsolated>b__0(Object _)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at NUnit.Framework.Internal.ContextUtils.DoIsolated(ContextCallback callback, Object state)
at NUnit.Framework.Internal.ContextUtils.DoIsolated[T](Func`1 func)
at NUnit.Framework.Internal.Execution.SimpleWorkItem.PerformWork()
.NET Version info
No response
Anything else?
No response