funkwerk / gherkin_lint

Lints gherkin files
MIT License
38 stars 14 forks source link

Project not building on Windows #13

Closed enkessler closed 6 years ago

enkessler commented 6 years ago

I was interested in playing around with this gem but I develop primarily on a Windows machine and this project does not seem to work on it. It looks like that is because you test with Aruba and Aruba does not (currently) work on Windows. Even with an unreleased Aruba fix, about half of the tests fail because of line endings. I might attempt to fix all of this myself in the near future.

lindt commented 6 years ago

fix would be awesome.....have not so much windows experience, so I couldn't do the fix.

enkessler commented 6 years ago

The line ending problem may have to be fixed at the step definition level where the comparisons are being made. I'm not finding any documentation indicating that the steps provided by Aruba can be overridden or anything and I haven't heard back from the Aruba folks who I tried asking so...how attached are you to using Aruba? I'm pretty sure that custom step definitions for whatever needs replacing shouldn't be too difficult.

lindt commented 6 years ago

just to be curious....would it work if setting text eol=lf as option for git? https://help.github.com/articles/dealing-with-line-endings/

enkessler commented 6 years ago

I wouldn't think so. The tests are comparing against console output and the line endings in that console output will be system dependent. So the line endings in the feature file also need to be system dependent, which I think is one of those git flags, yeah.

enkessler commented 6 years ago

Playing with the line endings of the source files themselves makes no difference. Regardless of the line ending of the feature file (which is where the expected output text comes from), it always goes into the step definition with "\n" line endings.

So, given that the expectation cannot be modified, if I cannot somehow modify the actual result (i.e. the console output captured by Aruba) then the only option may be to not use Aruba.

enkessler commented 6 years ago

@lindt Once that PR is in, the next step is probably to add Windows to the CI process (I can do that as well) so that there aren't surprises like this in the future. :)