reqnroll / Reqnroll

Open-source Cucumber-style BDD test automation framework for .NET.
https://reqnroll.net
BSD 3-Clause "New" or "Revised" License
302 stars 33 forks source link

After adding SpecFlow.Plus.LivingDocPlugin nuget the build of the project fails #195

Closed ulluoink closed 6 days ago

ulluoink commented 6 days ago

Reqnroll Version

2.0.3

Which test runner are you using?

xUnit

Test Runner Version Number

2.8.1

.NET Implementation

.NET 8.0

Test Execution Method

Other – PLEASE SPECIFY

Content of reqnroll.json configuration file

not relevant for bug

Issue Description

new req n roll project.

when trying to use the nuget for livingdoc plugin "SpecFlow.Plus.LivingDocPlugin" (3.9.57) the build fails with error:

[...].nuget\packages\reqnroll.tools.msbuild.generation\2.0.3\build\Reqnroll.Tools.MsBuild.Generation.targets(93,5): error MSB4018: The "GenerateFeatureFileCodeBehindTask" task failed unexpectedly. [name-of-project.csproj]

[...].nuget\packages\reqnroll.tools.msbuild.generation\2.0.3\build\Reqnroll.Tools.MsBuild.Generation.targets(93,5): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'Reqnroll, Version=2.0.0.0, Culture=neutral, PublicKeyToken=611ce36403091019'.

Steps to Reproduce

add nuget SpecFlow.Plus.LivingDocPlugin to reqnroll project -> build will fail

Link to Repro Project

No response

gasparnagy commented 6 days ago

Unfortunately SpecFlow.Plus.LivingDoc is a closed-source SpecFlow plugin without a public API, so Reqnroll cannot work with it.

Our plan is to rewrite it from scratch, see https://github.com/orgs/reqnroll/discussions/37.

I close this issue as by design now.

ulluoink commented 6 days ago

i understand that req n roll has not implemented the living doc functionality (yet) .

but it really is a pitty that it is incompatible with the livingdoc nuget only because it is "closed-source". req n roll works with other closed-source nugets so this could not be the only reason.

the discussion seems not to be very progressed so it seems we have to stick with specflow and all the difficulties over there.

gasparnagy commented 6 days ago

@ulluoink the picture is simple: the SpecFlow living doc plugin uses types and methods from the TechTalk.SpecFlow assembly and namespace. We cannot workaround that. Even if we would call our own assembly as TechTalk.SpecFlow (probably violating the trademark on the "SpecFlow" name), the strong name validation would fail.

What we could do is to make a Reqnroll plugin, that generates the same (undocumented) JSON that the SpecFlow living doc plugin would generate and then you could use the the SpecFlow living doc CLI to generate an HTML from it. This would still be a temporary workaround and not a 5 minute job, but probably doable. If someone have time to play with this, that would be cool.

We will do a proper replacement of the living doc generator, because it is needed by many people and there is even some progress on this, but it is a lot of work. I would like to have it by the end of the year for sure. We (or at least myself) needed to start by stabilizing the code-base (having proper testing and making the contribution easier).

I think staying with SpecFlow until this is finished is absolutely fine (if your project does not depend on .NET 8.0). But you can also help yourself and the community with code contribution for this or sponsoring the project.

It is all about us. There is no magical force who solves the problems.