Giter Club home page Giter Club logo

pickles's People

Contributors

autom8edchaos avatar danielpullwitt avatar davidalpert avatar dirkrombauts avatar eduaquiles avatar ericcmmi avatar freeman avatar grzesiek-galezowski avatar haxen avatar hotgazpacho avatar janosmagyar avatar jcapriotti avatar jni- avatar lars-erik avatar maartenvandiemen avatar magicmonty avatar marcusoftnet avatar mkecharlie avatar nippe avatar ocsurfnut avatar photomoose avatar rik-smeets avatar s991116 avatar sandermvanvliet avatar seanfitzg avatar spacehole1 avatar sshushliapin avatar tlecomte avatar weralabaj avatar x97mdr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pickles's Issues

hierarchy

How do people handle large amounts of scenarios? It would be great if Pickles could respect the hierarchy of the folder structure.

Support writing to Confluence

In order to put the features alongside the other documentation in my Confluence wiki
As a feature writer
I want to have pickles sync my features to Confluence

Cannot build

Hi,

I seem to be having an issue where I cannot build the project. I just downloaded the master-zip and ran build.cmd by double-clicking it from explorer.

The build.log can be seen here: http://pastebin.ca/2315623
Most of the errors are in dutch, because that's what my computer is at.

Also "nuget" crashed a few times during the build, probably related.

Anything I can do?

Cheers!

Tags should be collected on Feature and Scenario Outline level too (not just on Scenario level)

Hi,

There's a bug in the Tag collection of the pickles parser: the parser collects all tags (on feature, scenario outline and outline level) but emits them all on the feature level.

Here's a sample feature file that will show the problem in the generated HTML.

@featureLevel
Feature: Tags

@outlineLevel
Scenario Outline: Scenario Outline Level
Given I do something with

Examples:
| Value |
| 1 |
| 2 |

@scenarioLevel
Scenario: Scenario Level
Given I do something

Remove the Example projects from the solution

And just add a directory with feature files and testresults-files.

The example project was just something that I dumped into the project to get something to show the pickles-power through.

I have a PR ready for this. But it's pretty dramatic:

  • Removed all the Example-projects (from directory and solution)
  • Added new Example folder with Features (only .features)
  • Added results files for xUnit and NUnit
  • Added a folder Output with example outputs (as zipped files)

What do you think?

Support for images

About what to do next: here’s something that came up in conversation with a colleague: sometimes a picture says more than a thousand words in the description of a feature. Markdown allows us to add links to images (and Pickles correctly outputs the html for them) BUT the paths are screwed up (of course).. It would be nice if the corresponding files would be copied too.

An example: suppose I have “” in my description somewhere. When pickles generates the html, this is rendered as which only works if the html pages are in the same location as the feature files. It would be cool if Pickles would detect this and copy that file. Or maybe we can be lazy and simply copy all image files – perhaps using a naming convention or something like that.

An idea for the naming convention:

  • Given I have a feature called ProcessAccounts.feature
  • When I generate the living documentation
  • Then pickles copies all images called ProcessAccounts_.png, ProcessAccounts_.jpg, ProcessAccounts_.gif, ProcessAccounts_.bmp

HTML and OpenXML Formatting

Moved from x97mdr#102


Here is the source, for example(look at format):

Feature: LimitFileGeneration schedule
In order to manufacture with current (approved) limset values
As a manufacturing
I want to have a limit files deployed in a controlled manner

TODO: notifikace, koho? predpokladam mailem

technical notes:
this runs as a scheduled task, e.g. periodically without user intervention (tzn. "normalne" se o to nemusim starat)
generator run is a "unit of work", unless successfully completed it does not alter any limit files

pozadavek na rychlost: cca 5min pro inzenyrske vyrobky, hodiny vyrobni vyrobky
jediny duvod pro rozdeleni je rychlost
zacneme s jednim generatorem, az pri potizich pridat druhy generator
(ten by mel podminku na product=DESIGN, zaroven by se nezakazoval pres CF)

implementacni poznamky:
novy beh
zjistim, jaky interval approval_seq zpracovat
zjistim, jake vyrobky se zmenily
aktualizuji cache pro kazdy povoleny limitni soubor
vygeneruju vsechny limitni soubory (uz jenom vyplyvnout na disk) do nejakeho docasneho adresare
nastavim vsecm zmenan status/datum generated (je potreba?)
pak najednou nakopiruji do cile (stejne mala sance, ze to spadne)
notifikuji
upravim status behu


Here is output in HTML:

In order to manufacture with current (approved) limset values As a manufacturing I want to have a limit files deployed in a controlled manner

TODO: notifikace, koho? predpokladam mailem

technical notes: this runs as a scheduled task, e.g. periodically without user intervention (tzn. "normalne" se o to nemusim starat) generator run is a "unit of work", unless successfully completed it does not alter any limit files

pozadavek na rychlost: cca 5min pro inzenyrske vyrobky, hodiny vyrobni vyrobky jediny duvod pro rozdeleni je rychlost
zacneme s jednim generatorem, az pri potizich pridat druhy generator (ten by mel podminku na product=DESIGN, zaroven by se nezakazoval pres CF)

implementacni poznamky: novy beh zjistim, jaky interval approval_seq zpracovat zjistim, jake vyrobky se zmenily aktualizuji cache pro kazdy povoleny limitni soubor vygeneruju vsechny limitni soubory (uz jenom vyplyvnout na disk) do nejakeho docasneho adresare nastavim vsecm zmenan status/datum generated (je potreba?) pak najednou nakopiruji do cile (stejne mala sance, ze to spadne) notifikuji upravim status behu


Here is formating in Word

In order to manufacture with current (approved) limset values As a manufacturing I want to have a limit files deployed in a controlled manner TODO: notifikace, koho? predpokladam mailem technical notes: this runs as a scheduled task, e.g. periodically without user intervention (tzn. "normalne" se o to nemusim starat) generator run is a "unit of work", unless successfully completed it does not alter any limit files pozadavek na rychlost: cca 5min pro inzenyrske vyrobky, hodiny vyrobni vyrobky jediny duvod pro rozdeleni je rychlost zacneme s jednim generatorem, az pri potizich pridat druhy generator (ten by mel podminku na product=DESIGN, zaroven by se nezakazoval pres CF) implementacni poznamky: novy beh zjistim, jaky interval approval_seq zpracovat zjistim, jake vyrobky se zmenily aktualizuji cache pro kazdy povoleny limitni soubor vygeneruju vsechny limitni soubory (uz jenom vyplyvnout na disk) do nejakeho docasneho adresare nastavim vsecm zmenan status/datum generated (je potreba?) pak najednou nakopiruji do cile (stejne mala sance, ze to spadne) notifikuji upravim status behu



The point is, could you have the same output format as the source? Thank you for this project.

Idea: Exclude Scenarios or Features by tags

Background: our repository of feature files contains several files about future user stories. It's misleading if those appear in the living documentation, at least if the living documentation is meant to showcase the current behaviour of the system. It gets even more "misleading" if the test results are shown as well, because there would be lots of inconclusive scenarios simply because the automation layer hasn't been written yet.

So I propose to add some way to exclude some scenarios or features from the generated documentation, for example to filter out those that have one or more from a list of tags provided as parameter to pickles.

Background is not included in Word

Hi,

I just installed the latest Pickles version and noticed that feature's background is not included anymore in Word documents. However they are present in html outputs.

I haven't investigated thoroughly but changes from that commit seem to be still part of the source code: d27c4be

DB

Allow multiple result files

We partition our test runs according to tags. That means we have no single result file with all results. It would therefore be cool to use multiple test result files in a single pickles run.

Pickles falls over when feature file has a background section

Pickles fails to generate documentation when it encounters a Background section in a feature file.

This sample gherkin script works fine with pickles:

Feature: BitBucket

Scenario: Just The Two Of Us
    When I navigate to 'https://bitbucket.org/MattDavey/beetroot'
    Then the [followers-count] label should say '2'
    When I click on the [followers-tab] link
    Then the [first-follower] should be 'Eddy Tester'
    And the [second-follower] should be 'MattDavey'

Scenario: Clone Url
    When I navigate to 'https://bitbucket.org/MattDavey/beetroot'
    Then the [clone-url-https] label should say 'hg clone https://bitbucket.org/MattDavey/beetroot'

However if I change it to this:

Feature: BitBucket

Background:
    Given I navigate to 'https://bitbucket.org/MattDavey/beetroot'

Scenario: Just The Two Of Us
    Then the [followers-count] label should say '2'
    When I click on the [followers-tab] link
    Then the [first-follower] should be 'Eddy Tester'
    And the [second-follower] should be 'MattDavey'

Scenario: Clone Url
    Then the [clone-url-https] label should say 'hg clone https://bitbucket.org/MattDavey/beetroot'

Pickles will give me the following error:

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at Pickles.TestFrameworks.XUnitResults.GetResultFromElement(XElement element) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\TestFrameworks\XUnitResults.cs:line 138
   at Pickles.TestFrameworks.XUnitResults.GetScenarioResult(Scenario scenario) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\TestFrameworks\XUnitResults.cs:line 80
   at Pickles.DocumentationBuilders.HTML.HtmlImageResultFormatter.Format(Scenario scenario) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\DocumentationBuilders\HTML\HtmlImageResultFormatter.cs:line 96
   at Pickles.DocumentationBuilders.HTML.HtmlScenarioFormatter.Format(Scenario scenario, Int32 id) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\DocumentationBuilders\HTML\HtmlScenarioFormatter.cs:line 47
   at Pickles.DocumentationBuilders.HTML.HtmlFeatureFormatter.Format(Feature feature) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\DocumentationBuilders\HTML\HtmlFeatureFormatter.cs:line 63
   at Pickles.DocumentationBuilders.HTML.HtmlContentFormatter.Format(IDirectoryTreeNode contentNode, IEnumerable`1 features) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\DocumentationBuilders\HTML\HtmlContentFormatter.cs:line 48
   at Pickles.DocumentationBuilders.HTML.HtmlDocumentFormatter.Format(IDirectoryTreeNode featureNode, GeneralTree`1 features, DirectoryInfo rootFolder) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\DocumentationBuilders\HTML\HtmlDocumentFormatter.cs:line 68
   at Pickles.HtmlDocumentationBuilder.<>c__DisplayClass1.<Build>b__0(IDirectoryTreeNode node) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\DocumentationBuilders\HTML\HtmlDocumentationBuilder.cs:line 98
   at NGenerics.Patterns.Visitor.ActionVisitor`1.Visit(T obj) in d:\Code\ngenerics\Source\NGenerics\Patterns\Visitor\ActionVisitor.cs:line 57
   at NGenerics.Patterns.Visitor.VisitorExtensions.AcceptVisitor[T](IEnumerable`1 enumerable, IVisitor`1 visitor) in d:\Code\ngenerics\Source\NGenerics\Patterns\Visitor\VisitorExtensions.cs:line 39
   at Pickles.HtmlDocumentationBuilder.Build(GeneralTree`1 features) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\DocumentationBuilders\HTML\HtmlDocumentationBuilder.cs:line 107
   at Pickles.Runner.Run(IKernel kernel) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles\Runner.cs:line 38
   at Pickles.CommandLine.Program.Main(String[] args) in c:\Users\matt.davey\Dropbox\Checkouts\picklesdoc-pickles-34200cb\src\Pickles\Pickles.CommandLine\Program.cs:line 53

Running Pickles with the following command line:

& $pickles --feature-directory="$featureDir" --output-directory="$reportsDir" --test-results-format="xunit" --link-results-file="$tempResults" --system-under-test-name="Beetroot.Proof" system-under-test-version="0.0.1" --documentation-format="HTML"

Path issues in Ubuntu

Hi.
I have Ubuntu 12.04 LTS and run Pickles.exe via Mono JIT compiler version 2.10.8.1 (Debian 2.10.8.1-1ubuntu2.2)

My directory tree with feature files:

-Acceptance
   -Smoke
      -features: features here        
   -NGUX
       -features: features here    

When I run pickles and specify exactly (without subfolders) folder with features (e.g. Acceptance/Smoke/features) - everything is ok:

mono aqa_core/utils/appliance_utils/regression/pickles-0.12.0.0/exe/Pickles.exe -f=aqa_rmc/testcases/Acceptance/Smoke/features/ -o=olo 
2013-10-17 17:17:36.3926|INFO|Program|Pickles v.0.12.0.0

2013-10-17 17:17:36.4007|INFO|Program|Generating documentation based on the following parameters
2013-10-17 17:17:36.4007|INFO|Program|----------------------------------------------------------
2013-10-17 17:17:36.4007|INFO|Program|Feature Directory         : /home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/aqa_rmc/testcases/Acceptance/Smoke/features/
2013-10-17 17:17:36.4007|INFO|Program|Output Directory          : /home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/olo
2013-10-17 17:17:36.4007|INFO|Program|Project Name              : 
2013-10-17 17:17:36.4007|INFO|Program|Project Version           : 
2013-10-17 17:17:36.4007|INFO|Program|Language                  : 
2013-10-17 17:17:36.4007|INFO|Program|Incorporate Test Results? : No
2013-10-17 17:17:36.6415|INFO|HtmlDocumentationBuilder|Writing HTML to /home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/olo
2013-10-17 17:17:36.7125|INFO|Program|Pickles completed successfully

But when I want to run pickles for whole Acceptance directory I get this:

mono aqa_core/utils/appliance_utils/regression/pickles-0.12.0.0/exe/Pickles.exe -f=aqa_rmc/testcases/Acceptance/ -o=olo 
2013-10-17 17:25:52.6946|INFO|Program|Pickles v.0.12.0.0

2013-10-17 17:25:52.7026|INFO|Program|Generating documentation based on the following parameters
2013-10-17 17:25:52.7026|INFO|Program|----------------------------------------------------------
2013-10-17 17:25:52.7026|INFO|Program|Feature Directory         : /home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/aqa_rmc/testcases/Acceptance/
2013-10-17 17:25:52.7026|INFO|Program|Output Directory          : /home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/olo
2013-10-17 17:25:52.7026|INFO|Program|Project Name              : 
2013-10-17 17:25:52.7026|INFO|Program|Project Version           : 
2013-10-17 17:25:52.7026|INFO|Program|Language                  : 
2013-10-17 17:25:52.7026|INFO|Program|Incorporate Test Results? : No
2013-10-17 17:25:52.9470|INFO|HtmlDocumentationBuilder|Writing HTML to /home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/olo
2013-10-17 17:25:53.0075|ERROR|Runner|Something went wrong while during generation: System.IO.DirectoryNotFoundException: Could not find a part of the path "/home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/olo/Smoke/features/soap.html".
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] in <filename unknown>:0 
  at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string,bool,System.Text.Encoding)
  at PicklesDoc.Pickles.DocumentationBuilders.HTML.HtmlDocumentationBuilder+<>c__DisplayClass1.<Build>b__0 (INode node) [0x00000] in <filename unknown>:0 
  at NGenerics.Patterns.Visitor.ActionVisitor`1[PicklesDoc.Pickles.DirectoryCrawler.INode].Visit (INode obj) [0x00000] in <filename unknown>:0 
  at NGenerics.Patterns.Visitor.VisitorExtensions.AcceptVisitor[INode] (IEnumerable`1 enumerable, IVisitor`1 visitor) [0x00000] in <filename unknown>:0 
  at PicklesDoc.Pickles.DocumentationBuilders.HTML.HtmlDocumentationBuilder.Build (NGenerics.DataStructures.Trees.GeneralTree`1 features) [0x00000] in <filename unknown>:0 
  at PicklesDoc.Pickles.Runner.Run (IContainer container) [0x00000] in <filename unknown>:0 

Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path "/home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/olo/Smoke/features/soap.html".
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] in <filename unknown>:0 
  at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string,bool,System.Text.Encoding)
  at PicklesDoc.Pickles.DocumentationBuilders.HTML.HtmlDocumentationBuilder+<>c__DisplayClass1.<Build>b__0 (INode node) [0x00000] in <filename unknown>:0 
  at NGenerics.Patterns.Visitor.ActionVisitor`1[PicklesDoc.Pickles.DirectoryCrawler.INode].Visit (INode obj) [0x00000] in <filename unknown>:0 
  at NGenerics.Patterns.Visitor.VisitorExtensions.AcceptVisitor[INode] (IEnumerable`1 enumerable, IVisitor`1 visitor) [0x00000] in <filename unknown>:0 
  at PicklesDoc.Pickles.DocumentationBuilders.HTML.HtmlDocumentationBuilder.Build (NGenerics.DataStructures.Trees.GeneralTree`1 features) [0x00000] in <filename unknown>:0 
  at PicklesDoc.Pickles.Runner.Run (IContainer container) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.DirectoryNotFoundException: Could not find a part of the path "/home/bsuhov/Dropbox/Axcient/ASWorkspace/Axcient-QA/olo/Smoke/features/soap.html".
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] in <filename unknown>:0 
  at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string,bool,System.Text.Encoding)
  at PicklesDoc.Pickles.DocumentationBuilders.HTML.HtmlDocumentationBuilder+<>c__DisplayClass1.<Build>b__0 (INode node) [0x00000] in <filename unknown>:0 
  at NGenerics.Patterns.Visitor.ActionVisitor`1[PicklesDoc.Pickles.DirectoryCrawler.INode].Visit (INode obj) [0x00000] in <filename unknown>:0 
  at NGenerics.Patterns.Visitor.VisitorExtensions.AcceptVisitor[INode] (IEnumerable`1 enumerable, IVisitor`1 visitor) [0x00000] in <filename unknown>:0 
  at PicklesDoc.Pickles.DocumentationBuilders.HTML.HtmlDocumentationBuilder.Build (NGenerics.DataStructures.Trees.GeneralTree`1 features) [0x00000] in <filename unknown>:0 
  at PicklesDoc.Pickles.Runner.Run (IContainer container) [0x00000] in <filename unknown>:0 

That seems like not good :) It would be great if feature files can be accessible also from subfolders.

Thanks.
Bogdan.

Support for images

About what to do next: here’s something that came up in conversation with a colleague: sometimes a picture says more than a thousand words in the description of a feature. Markdown allows us to add links to images (and Pickles correctly outputs the html for them) BUT the paths are screwed up (of course).. It would be nice if the corresponding files would be copied too.

An example: suppose I have “” in my description somewhere. When pickles generates the html, this is rendered as which only works if the html pages are in the same location as the feature files. It would be cool if Pickles would detect this and copy that file. Or maybe we can be lazy and simply copy all image files – perhaps using a naming convention or something like that.

An idea for the naming convention:

Given I have a feature called ProcessAccounts.feature
When I generate the living documentation
Then pickles copies all images called ProcessAccounts__.png, ProcessAccounts__.jpg, ProcessAccounts__.gif, ProcessAccounts__.bmp
Edit the card description.

DHTML uses the Feature's description for the Background

When the following Gherkin is output as DHTML the Background uses the feature's description.

Feature: PBI46902 - Save wind forecasts to database
    As a Pickles user
    When I give a description in my background
    I want the background to use that description, not this text

Background:
    This text describes my background

Will produce HTML similar to:

<div class="scenario">
  <h4>Background:</h4>
  <div data-bind="html: renderMarkdownBlock(Description)" class="description">
      <p>As a Pickles user
    When I give a description in my background
    I want the background to use that description, not this text</p>
  </div>
....
</div>

It should produce something similar to this:

<div class="scenario">
  <h4>Background:</h4>
  <div data-bind="html: renderMarkdownBlock(Background.Description)" class="description">
      <p>This text describes my background</p>
  </div>
....
</div>

Crash when a feature is not present in the test result (with NUnit)

Some of our feature are ignored from our test run.

Pickles crashes with this error :

Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
   at PicklesDoc.Pickles.TestFrameworks.NUnitResults.GetFeatureResult(Feature fe
ature)
   at PicklesDoc.Pickles.Runner.<>c__DisplayClass1.<ApplyTestResultsToFeatures>b
__0(INode node)
   at NGenerics.Patterns.Visitor.ActionVisitor`1.Visit(T obj)
   at NGenerics.Patterns.Visitor.VisitorExtensions.AcceptVisitor[T](IEnumerable`
1 enumerable, IVisitor`1 visitor)
   at PicklesDoc.Pickles.Runner.ApplyTestResultsToFeatures(IContainer container,
 Configuration configuration, GeneralTree`1 features)
   at PicklesDoc.Pickles.Runner.Run(IContainer container)
   at PicklesDoc.Pickles.CommandLine.Program.Main(String[] args)

in this case.

It seems to be caused because the GetFeatureResult method does not checks for a null return from GetFeatureElement.

I can submit a pull request if you like.

Show @tags in output

Moved from x97mdr#108

As per Cucumber book recommendations, I've been adding tags to my scenarios to label them as being applicable to a user story.

It would be very useful if these were output by Pickles to help the business analysts see which tests cover which user stories.

Rendering issues with Internet Explorer

When viewing the HTML Static Content site in internet explorer the Test Results are not showing the checkboxes. Instead, a box appears.

In addition, there are also some issues (in Chrome) where the checkboxes do not appear correctly due to the feature being too long for the navigation bar.

IE 9.0:
image
image

Chrome:

image

Better error reporting

Right now, it is not clear (at least not int the UI client) when generation of the documentation files works or does not work.

Additionally, generation should continue with other feature files if one feature file fails (because of parsing errors or whatever).

Tests results not shown

Hi

Not sure if I'm doing something wrong or what. It's the first time I use Pickles and am trying it with the latest version of Specflow (1.9.1)

I run pickles like this:

C:\Users\kevin\Pickles\src\Pickles\Pickles.CommandLine\bin\Debug\
pickles.commandline --feature-directory:C:\Users\kevin\MyProject\Src\Sample\Src\Sa
mple.Acceptance\Features --output-directory:C:\Users\kevin\MyProject\Src\Sample\Re
ports\Acceptance\UI\Browser\output --trfmt=nunit --lr=C:\Users\kevin\MyProject\Src
\Sample\Reports\Acceptance\UI\Browser\20121124.xml

The Html Pickles document is generated successfully. But even though I specify the link-results-file parameter (it's valid, the Xml exists) Pickles does not add the outcome of the test to the Html it generates.
Maybe I'm mistaken about what the link-results-file is for? My understanding is that it's for Pickles to specify the outcome of the tests in the document it generates? If I'm correct, then why it doesn't show it? I tried generating a Word document instead of an HTML, and still can't see the tests outcome.

Pickles.Powershell.dll was not loaded because no valid module file was found.......

When installing Pickles via the NuGet console, I'm getting the following;

Import-Module : The specified module C:.....blah blah....\Pickles.0.8.0.0\tools\Pickles.Powershell.dll was not loaded because no valid module file was found in any module directory.
At: C:...blah....\packages\Pickles.0.8.0.0\tools\init.ps1:3 char:14
+Import-Module <<<< (Join-Path $toolsPath Pickles.Powershell.dll)
+CategoryInfo : ResourceUnavailable: (C:...Powershell.dll:String) [Import-Module], FileNotFoundException

It would appear to be trying to a non-existent file - sure enough when checking in the Pickles.0.8.0.0 folder, the file is not present.
NuGet finishes by stating "Pickles Installed" but when you try the Pickle-Features cmdlet it's not recognized.

I've managed to force it to work, by specifically importing the module PicklesDoc.Pickles.Powershell.dll

Add a Chocolatey package

In order to easily install Pickles and use it from the command-line and/or powershell
As a person at a workstation
I want to create a chocolatey install package that will drop the pickles gui, command-line and powershell cmdlet on someone's system.

Markdown issue with list

Looks like list are not properly generated (only tested it in HTML).

How to reproduce:

Create a Feature File that contains a list in markdown syntax, exemple:
Feature: SuperDuper
In order to do a super duper thing As a super user I want the system to super duperize something

  • List Item 1
  • List Item 2
  • List Item 3
    .
    .
    .
    '

When pickling this, Pickles doesn't generate a list in HTML anyway, not sure about the other formats.

Please implement marking ignored test cases with yellow sign rather than red for all Test Result providers (not just MSTest)

Hi,

Currently, pickles cannot distinguish between ignored nunit tests and failed ones on HTML report, marking both with red mark.

It can be useful to distinguish, because ignored scenarios are usually the ones that we put in the tool, but didn't yet automate and we don't want to confuse them with already automated scenarios that fail (e.g. regressions).

I can see that, e.g. in case of backgrounds, a yellow mark is used. Can't we have the same in case of ignored scenarios?

Improve handling of multiple example blocks within a Scenario Outline

Implement better handling of multiple example tables within a single Scenario Outline by retaining comments where possible and filtering out repeat parameter rows in example tables (see below example):-

Scenario Outline: Password validation
Given ...
When ...
Then ...

Examples: Too short
Passwords are invalid if less than 4 characters

| Password | Valid or invalid |
| abc | invalid |
| ab1 | invalid |

Examples: Letters and Numbers
Passwords need both letters and numbers to be valid

| Password | Valid or invalid |
| abc1 | valid |
| abcd | invalid |
| abcd1 | valid |

Currently Pickles output under v0.7 is something like:-

Password validation

Examples

| Password | Valid or invalid |
| abc | invalid |
| ab1 | invalid |
| Password | Valid or invalid |
| abc1 | valid |
| abcd | invalid |
| abcd1 | valid |

.feature parser

I'm using t4 to generate some stub code for my tests based on a feature file.

Here is what i came up with if you want to use the same parser.

One thing we are adding is issues, spaced tags, different type of comments.

Input

/*
initial comment
*/
#what?
@template @InTesting   #some more comment
@hi @what@multi space tag # test test
// different style comment
@and more goes here @another line of some kind  #more comment

#some comments goes here

Feature :/* inline comment*/    Template #some comments goes here

Background:
    Given an authenticated user
     And the user is at the Templates home page


#some comments goes here

Scenario:   User creates a new template with a name
    When user clicks on 'New Template' button
    Then template creation is started
     And user can save template with a name

scenario:   User creates a new template with case information#more comment
    When user adds valid partial case information to a template
    Then 'required' fields should not fail validation


Issues:
12345, 343434, 54545
,
43434, 767676,  676767

1
2
3
4
5

          #last comment

7
8

NPEG

NewLine: [\r][\n] / [\n][\r] / [\n] / [\r];
Space: ' ';
Tab: [\t];
(?<EndOfLineComment>): (('#' / '//') (?<msg>(!NewLine .)*) NewLine) ;
(?<MultilineComment>):  ('/*' (?<msg>(!'*/' .)*) '*/');
s: ( Space / Tab / MultilineComment )+;
S: ( NewLine / EndOfLineComment )+;
W: (s / S);
(?<Gherkin>): ((?<Line> s* (?<Key> 'Given'\i / 'When'\i / 'Then'\i / 'And'\i / 'But'\i )  (?<Statement> (!S .)+ ) ) W*)+;
(?<TagLine>): (?<Tag>'@'  (?<Name> (!('@' / S) .)+ ) s* )+ W;
(?<FeatureLine>): 'Feature'\i    s* ':' s* (?<Title> (!S .)+ ) ;
(?<Background>): 'Background'\i  s* ':' W* Gherkin;
(?<Scenario>): 'Scenario'\i s* ':'  (?<Title> (!S .)+ ) W* Gherkin;
(?<Issues>): 'Issues'\i s* ':'  (W* (?<Id>[0-9]+) W* ','?)+;
(?<Document>):  W* TagLine* FeatureLine W* Background W* (Scenario W*)+ Issues;

You can use the tool here to see the ast given the input and rules:
http://www.robusthaven.com/blog/parsing-expression-grammar/npeg-language-workbench

HTML Report: Table of Content indent is wrong with two levels of directory nesting

Suppose I have the following directory structure:


Deeply
--Nested
----Features
------Nested.feature

And I generate a report by setting "Deeply" as the root folder for features, then the generated HTML report has the following indentation in Table Of Content:

Nested
Features
------Nested.feature

While I expected it to be:
Nested
--Features
----Nested.feature

Funny thing is that when I add another level of directory nesting (e.g. set features root directory to parent directory of "Deeply" directory instead of "Deeply" directory itself) then the indentation is OK.

Looks like some nasty CSS issue in structure.css... I tried a bit to play with it but couldn't find the guilty place...

Add multiple workspaces to the UI

As a Pickles UI User
I want to have multiple workspaces/tabs in the UI
so that I don't have to reenter the settings when switching between projects

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.