Я пытаюсь заставить тестирование BDD работать с использованием ядра dotnet и xunit.gherkin.quick.(https://github.com/ttutisani/Xunit.Gherkin.Quick)
Я создал проект, который полностью работает на Windows https://github.com/Richie5555/QuickTest
Полностью работая, я могу выполнить команду 'тест Dotnet' и получаюпроходной тест, и я могу выполнить команду 'dotnet xunit', и я получаю проходной тест.(Мне нужно запустить 'dotnet xunit -xml results.xml' в конце, чтобы получить отчет о тестировании xunit.
Однако, когда я пытаюсь запустить его в Linux (centOS), "dotnet test" работал как положеноТем не менее, 'dotnet xunit' не находит никаких тестов.
Прогуляв пару дней (и пробуя многие вещи), я в тупике!
Пожалуйста, кто-нибудь может помочь решить эту проблему?
Мой файл .csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.gherkin.quick" Version="3.3.0" />
<PackageReference Include="xunit.runner.console" Version="2.4.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
</ItemGroup>
<ItemGroup>
<None Update="./FeatureFiles/*.feature">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
Мой файл функций:
Feature: FeatureOne
Scenario: ScenarioOne
When I add 1 plus 1
Then the answer should be 2
Мои файлы StepDefinition:
using Xunit;
using Xunit.Gherkin.Quick;
namespace QuickTest.StepDefinitions
{
[FeatureFile("./FeatureFiles/FeatureOne.feature")]
public sealed class FeatureOneSteps : Feature
{
private int _Answer = 0;
[When(@"I add 1 plus 1")]
public void IAdd1Plus1()
{
_Answer = 1 + 1;
}
[Then(@"the answer should be 2")]
public void TheAnswerShouldBe2()
{
Assert.Equal(2, _Answer);
}
}
}
Выполняется 'dotnet --info 'в Windows (работает нормально):
.NET Core SDK (reflecting any global.json):
Version: 2.1.403
Commit: 04e15494b6
Runtime Environment:
OS Name: Windows
OS Version: 10.0.14393
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.1.403\
Host (useful for support):
Version: 2.1.5
Commit: 290303f510
.NET Core SDKs installed:
2.1.403 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
То же самое в Linux:
.NET Core SDK (reflecting any global.json):
Version: 2.1.403
Commit: 04e15494b6
Runtime Environment:
OS Name: amzn
OS Version: 2
OS Platform: Linux
RID: linux-x64
Base Path: /usr/share/dotnet/sdk/2.1.403/
Host (useful for support):
Version: 2.1.5
Commit: 290303f510
.NET Core SDKs installed:
2.1.403 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
Пожалуйста, дайте мне знать, если есть дополнительная информация, необходимая для разрешенияты мне в помощь! :) 1031 *