Наш сервер TeamCity не может запустить тесты SpecFlow 3 для проекта .NET Core.
Мои домашние и рабочие рабочие станции могут выполнять эти тесты.
Похоже, что при создании экземпляра веб-сервера TestServer в оперативной памяти ASP.NET Core все типы перечисляются как часть настройки контейнера DI.
Не удалось загрузить файл или сборку 'TechTalk.SpecRun ...
System.Reflection.ReflectionTypeLoadException : Unable to load one or more of the requested types.
Could not load file or assembly 'TechTalk.SpecRun, Version=3.0.0.0, Culture=neutral, PublicKeyToken=d0fc5cc18b3b389b'. The system cannot find the file specified.
Could not load file or assembly 'TechTalk.SpecRun.Common, Version=3.0.0.0, Culture=neutral, PublicKeyToken=d0fc5cc18b3b389b'. The system cannot find the file specified.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeAssembly.get_DefinedTypes()
at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
...
// Abridged here
...
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection services)
at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()
at Microsoft.AspNetCore.Hosting.Internal.WebHost.Initialize()
at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
at Microsoft.AspNetCore.TestHost.TestServer..ctor(IWebHostBuilder builder, IFeatureCollection featureCollection)
Обыскивая мою рабочую станцию, я могу найти следующую подходящую сборку.
FullName
--------
C:\Users\luke.puplett\.nuget\packages\specrun.runner\3.0.337\tools\net45\TechTalk.SpecRun.dll
C:\Users\luke.puplett\.nuget\packages\specrun.runner\3.0.337\tools\netcoreapp2.0\TechTalk.SpecRun.dll
C:\Users\luke.puplett\.nuget\packages\specrun.runner\3.0.337\tools\netcoreapp2.1\TechTalk.SpecRun.dll
C:\Users\luke.puplett\.nuget\packages\specrun.runner\3.0.337\tools\netcoreapp2.2\TechTalk.SpecRun.dll
Мой тестовый проект ссылается на этот материал. Обратите внимание, SpecRun.Runner
- это пакет, в котором отсутствует сборка, хотя он находится в tools
выше. Хм ...
<PackageReference Include="SpecFlow" Version="3.0.199" />
<PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.0.199" />
<PackageReference Include="SpecFlow.xUnit" Version="3.0.199" />
<PackageReference Include="SpecRun.Runner" Version="3.0.337" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
Я буду продолжать бороться и сообщу.
Я удалил файлы feature.cs
из отслеживания Git, так что я искал идею, что эти файлы все еще находятся на сервере сборки, а не очищены.
Дополнительные слова запроса: cic cicd pipe