JUnitTestLogger.dll не копируется при сборке, если это транзитивная зависимость - PullRequest
0 голосов
/ 15 апреля 2020

Я делаю основной пакет для всех тестовых проектов в нескольких решениях. График зависимостей выглядит следующим образом:

MyTests.csproj -> MyTestFramework (nuget package) -> JUnitTestLogger (nuget package)

Проблема в том, что JUnitTestLogger.dll должен быть скопирован в выходную папку при сборке MyTests.csproj, или он просто не работает. Хорошо, я добавляю:

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

к MyTests.csproj и строю заново В результате в выходной папке есть все переходные зависимости dll ... за исключением JUnitTestLogger.dll. Я проверил его исходный код JUnitTestLogger.csproj и не нашел ничего особенного.

Что не так с этим пакетом, почему он не скопирован? Я спрашиваю здесь, а не на Github из-за низкой активности в репо проекта.

MyTests.csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="MyTestFramework" Version="1.2.3" />
  </ItemGroup>
</Project>

MyTestFramework.csproj (часть):

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <IsPackable>true</IsPackable>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="JUnitTestLogger" Version="1.1.0" />
  </ItemGroup>
</Project>

Сгенерировано автоматически MyTestFramework.nuspec (часть):

<dependencies>
  <group targetFramework=".NETCoreApp2.2">
    <dependency id="JUnitTestLogger" version="1.1.0" exclude="Build,Analyzers" />
  </group>
</dependencies>

1 Ответ

0 голосов
/ 23 апреля 2020

Я сопровождаю Junit Xml .TestLogger (более новый пакет, чем тот, который вы упомянули, но оба они были разветвлены из одного и того же источника в Github / Spekt и имеют общий код). Главное, что мне известно о том, что необычно для тестовых регистраторов, это то, что они упоминаются в вашем проекте, но не используются кодом.

Я не видел этой конкретной c проблемы, но в прошлом было несколько таких, как эта , когда библиотека не копировалась при сборке. Когда я впервые использовал эти библиотеки, мне пришлось добавить дополнительные шаги в мои сборки CI, чтобы скопировать библиотеку. Насколько я помню, мое решение было таким же, как и в проблеме, которая должна была перейти с msbuild на * 1008. *. Так что, может быть, тот или другой закрытый вопрос даст подсказку.

...