picklesdoc / pickles Goto Github PK
View Code? Open in Web Editor NEWThis project forked from x97mdr/pickles
The open source living documentation generator
Home Page: http://www.picklesdoc.com/
License: Apache License 2.0
This project forked from x97mdr/pickles
The open source living documentation generator
Home Page: http://www.picklesdoc.com/
License: Apache License 2.0
How do people handle large amounts of scenarios? It would be great if Pickles could respect the hierarchy of the folder structure.
I'm trying to find out whether SpecRun can output some easily parsable results.
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
Clearly, Pickles should generate each output format one time
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!
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
Generating a DHTML document includes a .DS_Store. Most likely, other document types may have the same issue.
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:
What do you think?
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:
As a product owner,
I want to see pass/fail icons in the table of contents
So that I can see the state of the tests at a glance
As a developer
I want to see a separate test result icon for tests that were not run
So that I can see at a glance which tests were disabled or missing bindings
Moved from x97mdr#102
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
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
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.
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.
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
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 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"
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.
Excel can put only 32767 characters in a string. If a description is long than that, pickles will crash
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.
It is only the Powershell provider that is currently preventing us from upgrading to .NET 4 and taking advantage of some newer functionality in the rest of the project. We should upgrade it if we can.
I'm having trouble viewing the generated DHTML site in IE and noticed that it was due to the trim() function implemented in stringFormatting.js
I worked around it as specified in this stackoverflow entry -> http://stackoverflow.com/questions/2308134/trim-in-javascript-not-working-in-ie
Tags should be included in the generated documentation too, especially in the html documentation.
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>
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.
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.
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.
Chrome:
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).
I'm moving all namespaces and assembly names to PicklesDoc.*. I imagine that this is a breaking change if you have scripted Pickles somewhere in your toolchain.
So, when I tried to generate doc file, it fails. Had to add it manually.
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.
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
It would be nice if the pickles NuGet package contained the pickles executable (described on the wiki) so that I can generate the documentation from the command line.
Hi all,
On:
https://github.com/x97mdr/pickles/wiki/ArgumentsTestResultsFile
We only have examples for powershell or console. What is the syntax for MSBuild?
PS: What happened with the wiki on the picklesdoc repository?
Thanks in advance,
Motta
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.
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
When pickling this, Pickles doesn't generate a list in HTML anyway, not sure about the other formats.
This would allow people to dynamically search and filter scenarios (for example by @tags).
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?
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 |
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
They should pass, or if they are no longer relevant they should be deleted.
When the continuous generation mode is active, Pickles UI should automatically detect changes to feature files, and re-run the generation process.
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...
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.