cheezy / pretty_face Goto Github PK
View Code? Open in Web Editor NEWHTML Report for Cucumber
License: MIT License
HTML Report for Cucumber
License: MIT License
I have screen shot saving setup in my After hook. When I navigate to the html report and click on the screenshot link it won't display the image. The url looks totally correct. I have tried this in chrome ff and ie. Here is the code from my After hook.
if scenario.failed?
Dir::mkdir('screenshots') if not File.directory?('screenshots')
screenshot = "./screenshots/FAILED_#{Time.new.to_i}_#{scenario.name.gsub(' ','_').gsub(/[^0-9A-Za-z_]/, '')}.png"
@browser.screenshot.save screenshot
embed screenshot, 'image/png'
end
It looks like using the latest PrettyFace (0.10.3) with the latest ActionPack (4.2.0) causes the html formatter to blow up (stack trace below). Temporary fix is to use a version of ActionPack below 4.2.0 with PrettyFace.
{:superclass_delegating_accessor=>:class_attribute} is not a symbol (TypeError)
c:/Ruby200/lib/ruby/gems/2.0.0/gems/deprecated-2.0.1/lib/deprecated.rb:176:in `instance_method'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/deprecated-2.0.1/lib/deprecated.rb:176:in `block in <top (required)>'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/core_ext/class/delegating_attributes.rb:26:in `<class:Class>'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/core_ext/class/delegating_attributes.rb:6:in `<top (required)>'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/core_ext/class.rb:2:in `require'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/core_ext/class.rb:2:in `<top (required)>'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.2.0/lib/action_view/template/resolver.rb:2:in `require'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.2.0/lib/action_view/template/resolver.rb:2:in `<top (required)>'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.2.0/lib/action_view/lookup_context.rb:4:in `require'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.2.0/lib/action_view/lookup_context.rb:4:in `<top (required)>'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.2.0/lib/action_view/base.rb:8:in `require'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.2.0/lib/action_view/base.rb:8:in `<top (required)>'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/pretty_face-0.10.3/lib/pretty_face/formatter/html.rb:159:in `generate_report'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/pretty_face-0.10.3/lib/pretty_face/formatter/html.rb:130:in `after_features'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.18/lib/cucumber/ast/tree_walker.rb:181:in `block in send_to_all'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.18/lib/cucumber/ast/tree_walker.rb:179:in `each'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.18/lib/cucumber/ast/tree_walker.rb:179:in `send_to_all'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.18/lib/cucumber/ast/tree_walker.rb:171:in `broadcast'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.18/lib/cucumber/ast/tree_walker.rb:20:in `visit_features'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.18/lib/cucumber/runtime.rb:49:in `run!'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.18/lib/cucumber/cli/main.rb:47:in `execute!'
c:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.18/bin/cucumber:13:in `<top (required)>'
c:/Ruby200/bin/cucumber:23:in `load'
c:/Ruby200/bin/cucumber:23:in `<main>'
error that I get
cannot load such file -- cucumber/ast/scenario
Error creating formatter: PrettyFace::Formatter::Html (LoadError)
/Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/pretty_face-0.10.3/lib/pretty_face/formatter/html.rb:5:in require' /Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/pretty_face-0.10.3/lib/pretty_face/formatter/html.rb:5:in
<top (required)>'
/Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/constantize.rb:17:in require' /Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/constantize.rb:17:in
rescue in constantize'
/Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/constantize.rb:6:in constantize' /Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/cli/configuration.rb:73:in
formatter_class'
/Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/cli/configuration.rb:172:in block in formatter_factories' /Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/cli/configuration.rb:168:in
map'
/Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/cli/configuration.rb:168:in formatter_factories' /Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/runtime.rb:193:in
formatters'
/Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/runtime.rb:185:in report' /Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/runtime.rb:67:in
run!'
/Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/lib/cucumber/cli/main.rb:38:in execute!' /Users/dennisdem/.rvm/gems/ruby-2.2.1/gems/cucumber-2.0.0/bin/cucumber:9:in
<top (required)>'
/Users/dennisdem/.rvm/gems/ruby-2.2.1/bin/cucumber:23:in load' /Users/dennisdem/.rvm/gems/ruby-2.2.1/bin/cucumber:23:in
<top (required)>'
-e:1:in load' -e:1:in
Running Rubymine
Using cucumber 2.0.0
Using pretty_face 0.10.3
Using rspec 3.2.0
Using selenium-webdriver 2.46.2
Hi.
Thanks for cool gem !
I have several subfolders in my features:
features:
activation_service
api
mail
etc...
And after generation report I see detailed reports pages only for features exist in activation_service subfolder.
We are using the latest pretty_face from github (https://github.com/cheezy/pretty_face).
Our rake file has a simple task as follows:
namespace :test_rake_results do
Cucumber::Rake::Task.new(:test_c) do |task|
task.cucumber_opts = "--format PrettyFace::Formatter::Html --out index.html"
end
end
task :demo_c => ['test_rake_results:test_c']
When we execute the task, the index.html file is created in the root of the project as expected. Also, the test1.html file is created in the feature folder alongside the original test1.feature file:
When opened in a browser, the index.html file looks as expected. The passed, failed, etc images appear. However, when we click on a feature link at the bottom of the page as so:
The test1.html file is opened but looks like this:
Looking at the source of the test1.html file, we are seeing that the links to the images are referenced from the location of the test1.html file itself rather than from the location of the index.html file (one folder up).
Also, from the test1.html file the back button is not linking to the index.html file as expected. This is the same issue.
Is this a bug, or is there a configuration option or setup approach we are missing?
When I run my suite (10 features) in parallel (on 8 processors) I am getting a mis-formatted feature overview in my index.html.
The index.html also does not show all of the processes that were run. As the picture shows there are 3 features that were reported but 10 features were run.
Ruby:
ruby 2.2.1
Gems:
cucumber (1.3.20)
parallel (1.6.1)
parallel_tests (1.3.7)
pretty_face (0.10.3)
I'm missing something:
undefined method steps' for nil:NilClass (NoMethodError) C:/Ruby/lib/ruby/gems/1.9.1/gems/pretty_face-0.1/lib/pretty_face/formatter/report.rb:28:in
add_step'
Hello,
I don't know how I can open issue so I write a new issue.
Just now I have the same problem, when I run it with RubyMine:
undefined method steps' for nil:NilClass (NoMethodError)
C:/Ruby/lib/ruby/gems/1.9.1/gems/pretty_face-0.1/lib/pretty_face/formatter/report.rb:28:inadd_step'
I'm using:
actionpack (4.0.1, 2.3.18)
activesupport (4.0.1, 2.3.18)
ansi (1.4.3)
atomic (1.1.14)
bigdecimal (1.2.1, 1.2.0)
builder (3.2.2, 3.2.0, 3.1.4)
bundler (1.3.5)
childprocess (0.3.9)
cucumber (1.3.9, 1.3.8, 1.3.1)
data_magic (0.16.1, 0.14)
debase (0.0.8, 0.0.3)
debugger-ruby_core_source (1.2.
diff-lcs (1.2.5, 1.2.4)
erubis (2.7.0)
faker (1.2.0, 1.1.2)
ffi (1.9.3 x86-mingw32, 1.9.0 x
fig_newton (0.9)
gherkin (2.12.2 x86-mingw32, 2.
hashie (2.0.5)
httpclient (2.3.4.1, 2.3.3)
i18n (0.6.5, 0.6.4)
io-console (0.4.2)
json (1.8.0, 1.7.7)
mini_magick (3.5.0)
mini_portile (0.5.1)
minitest (5.0.8, 4.7.5, 4.3.2)
minitest-reporters (1.0.0.beta2
multi_json (1.8.2, 1.8.0, 1.7.3
multi_test (0.0.2)
net-http-digest_auth (1.4, 1.3)
nokogiri (1.6.0 x86-mingw32)
page-object (0.9.3, 0.9.2, 0.8.
page_navigation (0.9)
pik (0.2.8)
powerbar (1.0.11)
pretty_face (0.9.1, 0.3)
psych (2.0.1, 2.0.0)
rack (1.5.2, 1.1.6)
rack-test (0.6.2)
rake (10.1.0, 0.9.6)
rautomation (0.13.0)
rdoc (4.0.1, 4.0.0)
require_all (1.3.1, 1.2.1)
rspec (2.14.1, 2.13.0)
rspec-core (2.14.7, 2.14.5, 2.1
rspec-expectations (2.14.4, 2.1
rspec-mocks (2.14.4, 2.14.3, 2.
ruby-debug-ide (0.4.17.beta16)
rubygems-update (2.1.10, 2.1.5,
rubyzip (1.0.0, 0.9.9)
selenium-webdriver (2.37.0, 2.3
subexec (0.2.3)
syntax (1.0.0)
test-unit (2.0.0.0)
testgen (0.8.1)
thor (0.18.1)
thread_safe (0.1.3)
tzinfo (0.3.38)
watir-classic (4.0.1)
watir-webdriver (0.6.4, 0.6.3)
websocket (1.0.7)
win32-api (1.5.0 universal-ming
win32-process (0.7.4)
win32console (1.3.2 x86-mingw32
win32screenshot (1.0.9)
windows-api (0.4.2)
windows-pr (1.2.2)
yml_reader (0.2)
Does anybody know the problem?
Sincerely Regards
Reference : Page 150 of Cucumber and Cheese book.
Change the runner options.
Run the feature file
Go back to view runner options. Changes are not saved.
Hi,
I am getting this error #744 while executing watir-cucumber scripts using cucumber 2.0 beta 3 in windows. I have raised a defect in cucumber issue tracker. But it is an pretty_face issue and mattwynne provided patch for cause of this issue.
Can any body see this issue #744 page and fix it.
Thanks,
Anil
using:
pretty_face 0.9.1
cucumber 1.3.10
For the following feature file I am getting an error message:
undefined method `table=' for #<Cucumber::Ast::Step:0x3e45a30> (NoMethodError)
Example Feature:
Scenario Outline: Pretty Face records results for failed scenario outlines
Given I have a scenario outline with a data table
| <username> | <password> |
When I execute my feature file
Then the table is included in the HTML report
Examples:
| username | password |
The backtrace points to this method.
def after_step(step)
step = process_step(step) unless step_belongs_to_outline? step
if @cells
step.table = @cells
@cells = nil
end
end
The method calls step.table =, but because this step belongs to an outline, the table= method was not created in process_step.
I get next error today: https://gist.github.com/JohnBat26/7246830
When using pretty face with Scenario Outlines an error is produced. Here is my scenario code:
Scenario Outline: : Add Application Category
When I search for the "<search_name>" application
Then I should see the "<category_name>" category and the "<app_name>" application in the application tree
Examples:
| search_name | app_name | category_name |
| freq | frequently | help |
| wel | welcome | help |
| incl | incliner | button |
| decl | decliner | button |
| new | news | news |
| out | outage | payers |
| prod | product | recondo |
| publ | publisher | recondo |
| rep | report | report |
| pass | password | utilities |
| upl | upload | utilities |
Here is the output:
When I search for the "<search_name>" application
Then I should see the "<category_name>" category and the "<app_name>" application in the application tree
undefined method `steps' for nil:NilClass (NoMethodError)
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pretty_face- 0.9.1/lib/pretty_face/formatter/report.rb:79:in `add_step'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:233:in `process_step'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:111:in `after_step'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/ast/tree_walker.rb:181:in `block in send_to_all'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/ast/tree_walker.rb:179:in `each'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/ast/tree_walker.rb:179:in `send_to_all'
(cont...)
Process finished with exit code 1
cannot load such file -- cucumber/ast/scenario
Error creating formatter: PrettyFace::Formatter::Html (LoadError)
C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
require'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pretty_face-0.10.3/lib/pretty_face/formatter/html.rb:5:in <top (required)>' C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in
require'
C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in rescue in require' C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in
require'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/constantize.rb:17:in rescue in constantize' C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/constantize.rb:6:in
constantize'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/cli/configuration.rb:73:in formatter_class' C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/cli/configuration.rb:172:in
block in formatter_factories'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/cli/configuration.rb:168:in map' C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/cli/configuration.rb:168:in
formatter_factories'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/runtime.rb:193:in formatters' C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/runtime.rb:185:in
report'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/runtime.rb:67:in run!' C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/lib/cucumber/cli/main.rb:38:in
execute!'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-2.0.0/bin/cucumber:9:in <top (required)>' C:/Ruby193/bin/cucumber:23:in
load'
C:/Ruby193/bin/cucumber:23:in `
Can anyone please help me to resolve it?
I am using below versions
Thanks.
Hey folks,
This is an issue we're picking up at a client, and after a bit of digging, I've found that the cucumber/ast references within the code is actually causing the project to fail spectacularly.
Not sure how to fix, but I did dig up that Ast was deprecated. Thought I'd point you in the right direction.
C:\Ruby200\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) C:\Ruby200\bin/cucumber C:/Users/TNV766/Desktop/ICORE_Hispanic_Automation_Subversion/51.05_new/icoreAcceptanceTests/features/Hispanic_TellUs_About_Yourself_Dropdowns.feature --format Teamcity::Cucumber::Formatter --expand --color -r features -p st5 RDEE_BROWSER=firefox
Testing started at 10:28 AM ...
0 scenarios
0 steps
0m0.000s
NaN (ActionView::Template::Error)
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/formatter/duration.rb:8:in divmod' C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/formatter/duration.rb:8:in
format_duration'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/pretty_face-0.10.2/lib/pretty_face/formatter/view_helper.rb:33:in scenario_average_duration' C:/Ruby200/lib/ruby/gems/2.0.0/gems/pretty_face-0.10.2/lib/pretty_face/templates/main.erb:53:in
_____uby____lib_ruby_gems_______gems_pretty_face________lib_pretty_face_templates_main_erb___341596305_27652512'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/template.rb:145:in block in render' C:/Ruby200/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/notifications.rb:161:in
instrument'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/template.rb:339:in instrument' C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/template.rb:143:in
render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/template_renderer.rb:55:in block (2 levels) in render_template' C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/abstract_renderer.rb:38:in
block in instrument'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/notifications.rb:159:in block in instrument' C:/Ruby200/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/notifications/instrumenter.rb:20:in
instrument'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/notifications.rb:159:in instrument' C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/abstract_renderer.rb:38:in
instrument'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/template_renderer.rb:54:in block in render_template' C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/template_renderer.rb:62:in
render_with_layout'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/template_renderer.rb:53:in render_template' C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/template_renderer.rb:17:in
render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/renderer.rb:42:in render_template' C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/renderer/renderer.rb:23:in
render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.6/lib/action_view/helpers/rendering_helper.rb:32:in render' C:/Ruby200/lib/ruby/gems/2.0.0/gems/pretty_face-0.10.2/lib/pretty_face/formatter/html.rb:171:in
generate_report'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/pretty_face-0.10.2/lib/pretty_face/formatter/html.rb:140:in after_features' C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:181:in
block in send_to_all'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:179:in each' C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:179:in
send_to_all'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:171:in broadcast' C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:20:in
visit_features'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/runtime.rb:49:in run!' C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/lib/cucumber/cli/main.rb:47:in
execute!'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.17/bin/cucumber:13:in <top (required)>' C:/Ruby200/bin/cucumber:23:in
load'
C:/Ruby200/bin/cucumber:23:in <top (required)>' -e:1:in
load'
-e:1:in `
Process finished with exit code 1
Empty test suite.
Can you improve pretty_face for support spinach ?
http://codegram.github.io/spinach/
Hi Cheezy,
I have my features broken up by folders. e.g. features/product_a/feature_a.feature
I set my report to output to a folder named 'results' like so:
my_profile: -r features/ --no-source --format PrettyFace::Formatter::Html --out results/index.html
Given this configuration, I ended up having to duplicate the folder structure of features to align directly with the results folder. In other words, I would need to create a results/product_a folder. Is this how it's intended to be used? Should I always have to manually create a new folder under results every time I create a new folder in features? How would you recommend configuring a scenario like this?
Thanks!
I am getting the following error while running my scripts using:
@browser = Watir::Browser.new :phantomjs
not only for phantomjs for all drivers. Please look into this issue
uninitialized constant ActionView::LookupContext::DetailsKey::Mime (NameError)
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/lookup_cont
ext.rb:69:in `get'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/lookup_cont
ext.rb:93:in `details_key'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/lookup_cont
ext.rb:160:in `detail_args_for'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/lookup_cont
ext.rb:154:in `args_for_lookup'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/lookup_cont
ext.rb:124:in `find'
C:in `find_template'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/renderer/te
mplate_renderer.rb:33:in `block in determine_template'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/lookup_cont
ext.rb:145:in `with_fallbacks'
C:in `with_fallbacks'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/renderer/te
mplate_renderer.rb:33:in `determine_template'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/renderer/te
mplate_renderer.rb:8:in `render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/renderer/re
nderer.rb:42:in `render_template'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/renderer/re
nderer.rb:23:in `render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionview-4.1.1/lib/action_view/helpers/ren
dering_helper.rb:32:in `render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/pretty_face-0.10.1/lib/pretty_face/formatter
/html.rb:157:in `generate_report'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/pretty_face-0.10.1/lib/pretty_face/formatter
/html.rb:126:in `after_features'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/ast/tree_walker
.rb:181:in `block in send_to_all'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/ast/tree_walker
.rb:179:in `each'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/ast/tree_walker
.rb:179:in `send_to_all'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/ast/tree_walker
.rb:171:in `broadcast'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/ast/tree_walker
.rb:20:in `visit_features'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/runtime.rb:49:i
n `run!'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/cli/main.rb:47:
in `execute!'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.3.15/bin/cucumber:13:in `<top (re
quired)>'
C:/Ruby200/bin/cucumber:23:in `load'
C:/Ruby200/bin/cucumber:23:in `<main>'
Screenshots are not created or embedded in html report on windows.
PrettyFace appears to be failing when using multiline argument tables in conjunction with scenario outlines. For example:
Scenario Outline: Example
Given the following data
| Foo | Bar |
| <foo_data> | <bar_data> |
Then things should work
Examples:
| foo_data | bar_data |
| abcd | 1234 |
The above scenario outline causes PrettyFace to fail with the following message:
undefined method `table=' for #<Cucumber::Ast::Step:0x42fab48> (NoMethodError)
which comes from:
lib/pretty_face/formatter/html.rb:120:in `after_step'
hi ,
i have the below code in my env.rb to generate screenshots for failed and passed scenarios.
def take_screenshot(scenario)
if scenario.failed?
scenario_name = scenario.name.gsub /[^\w-]/, ' '
time = Time.now.strftime("%Y-%m-%d %H%M")
Dir.mkdir("failed_png") unless File.directory?("failed_png")
filename = time + ' - ' + scenario_name + '.png'
screenshot_path = './failed_png/' + filename
save_screenshot(screenshot_path)
embed ('../../failed_png/' + filename), 'image/png'
else
scenario_name = scenario.name.gsub /[^\w-]/, ' '
time = Time.now.strftime("%Y-%m-%d %H%M")
Dir.mkdir("success_png") unless File.directory?("success_png")
filename = time + ' - ' + scenario_name + '.png'
screenshot_path = './success_png/' + filename
save_screenshot(screenshot_path)
embed ('../../success_png/' + filename), 'image/png'
end
end
After do |scenario|
take_screenshot(scenario)
end
the above code creates images in my success_png folder . here below the snap shot of my folder structure .
when i do this , i get the pretty face report of my scenario, image is displayed correctly but i get the failure scenario due to the error in the command line like below:
and when i inspect the image in pretty face report html, i can see the path is valid and i can see the image when i click , but why this error? here is the src in the pretty_face html report
src="images/../../success_png/2014-05-13 0949 - Valid Login.png"
due to this my scenarios are failing. can u let me know what i shall do to get rid of the this error . i am using pretty_face version 0.10.1 with actionpack 4.0.4.
another issue , i am facing is , no matter what if i put the pretty_face arguments like this in default yml file in cucumber, it doesnt run the report. i have to always put a seperate profile in the yml for generating pretty_face report. i am doing something wrong ?
default: --format pretty --tag ~@wip --format PrettyFace::Formatter::Html --out results/index.html
I updated PrettyFace (I think, jenkins does it automatically so I'm guessing it updated because everything is now breaking) and I'm getting this error when trying to use the --format PrettyFace::Formatter:Html --out results/index.html
flags
NaN (ActionView::Template::Error)
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/formatter/duration.rb:8:in `divmod'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/formatter/duration.rb:8:in `format_duration'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/view_helper.rb:33:in `scenario_average_duration'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/templates/main.erb:53:in `_____uby____lib_ruby_gems_______gems_pretty_face_______lib_pretty_face_templates_main_erb__556451822_35069304'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/template.rb:143:in `block in render'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-4.0.1/lib/active_support/notifications.rb:161:in `instrument'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/template.rb:141:in `render'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/template_renderer.rb:49:in `block (2 levels) in render_template'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-4.0.1/lib/active_support/notifications.rb:159:in `block in instrument'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-4.0.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-4.0.1/lib/active_support/notifications.rb:159:in `instrument'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/template_renderer.rb:48:in `block in render_template'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/template_renderer.rb:56:in `render_with_layout'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/template_renderer.rb:47:in `render_template'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/template_renderer.rb:17:in `render'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/renderer.rb:42:in `render_template'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/renderer/renderer.rb:23:in `render'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_view/helpers/rendering_helper.rb:24:in `render'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:154:in `generate_report'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:123:in `after_features'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/ast/tree_walker.rb:181:in `block in send_to_all'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/ast/tree_walker.rb:179:in `each'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/ast/tree_walker.rb:179:in `send_to_all'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/ast/tree_walker.rb:171:in `broadcast'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/ast/tree_walker.rb:20:in `visit_features'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/runtime.rb:48:in `run!'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/lib/cucumber/cli/main.rb:47:in `execute!'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.6/bin/cucumber:13:in `<top (required)>'
C:/Ruby193/bin/cucumber:23:in `load'
C:/Ruby193/bin/cucumber:23:in `<main>'
Hi,
I am using Ruby + Cucumber + prettyFace (no PageObject) for testing with two browsers at the same time (two different users logged in to the same webpage and interacting - one user does some action, the second one verifies it, etc). When the scenario fails, I iterate through the list of users and take screenshot of their browser. So far so good (I end up with two screenshots).
But the problem is to embed them in the prettyFace report. I only see link for the screenshot that was embedded last. Seems to me that the first embed is overridden by the second one. My goal is to embed both of them so I can have better idea where the user interaction failed. Is there a way around it or only one screenshot can be embedded to the report for each failed scenario?
Hi Jeff,
How about adding failed and passed screenshots in the report?
Presently I am using like this:
After do |scenario|
if scenario.failed?
Dir::mkdir('images') if not File.directory?('images')
screenshot = "./FAILED_#{scenario.name.gsub(' ','').gsub(/[^0-9A-Za-z_]/, '')}.png"
@browser.screenshot.save(screenshot)
embed screenshot, 'image/png'
else
Dir::mkdir('images') if not File.directory?('images')
screenshot = "./PASSED#{scenario.name.gsub(' ','_').gsub(/[^0-9A-Za-z_]/, '')}.png"
@browser.screenshot.save(screenshot)
embed screenshot, 'image/png'
end
Can we include this in pretty_face
Thanks,
Anil
Trying to run cucumber with pretty_face report produces the following:
[ruby-2.0.0-p353]ay@ay-air ~/RubymineProjects/indi_ui_tests $ cucumber --format PrettyFace::Formatter::Html --out testresults/report.html
undefined method `silence_warnings' for ActiveSupport::Deprecation::DeprecationProxy:Class (NoMethodError)
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-2.3.18/lib/active_support/deprecation.rb:130:in `<class:DeprecationProxy>'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-2.3.18/lib/active_support/deprecation.rb:122:in `<module:Deprecation>'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-2.3.18/lib/active_support/deprecation.rb:4:in `<module:ActiveSupport>'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-2.3.18/lib/active_support/deprecation.rb:3:in `<top (required)>'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/actionpack-2.3.18/lib/action_view.rb:56:in `<top (required)>'
/Users/ay/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/ay/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/pretty_face-0.3/lib/pretty_face/formatter/html.rb:1:in `<top (required)>'
/Users/ay/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `require'
/Users/ay/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
/Users/ay/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:144:in `require'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/constantize.rb:17:in `rescue in constantize'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/constantize.rb:6:in `constantize'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/cli/configuration.rb:83:in `formatter_class'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/cli/configuration.rb:182:in `block in formatters'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/cli/configuration.rb:178:in `map'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/cli/configuration.rb:178:in `formatters'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/cli/configuration.rb:76:in `build_tree_walker'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/runtime.rb:46:in `run!'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/lib/cucumber/cli/main.rb:47:in `execute!'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/gems/cucumber-1.3.10/bin/cucumber:13:in `<top (required)>'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/bin/cucumber:23:in `load'
/Users/ay/.rvm/gems/ruby-2.0.0-p353/bin/cucumber:23:in `<main>'
[ruby-2.0.0-p353]ay@ay-air ~/RubymineProjects/indi_ui_tests $
This is reproducible with both Ruby 2.0 and 2.1
I'm going to start using embedded images because I like the idea of not have screenshots building up everywhere. However when using this code I ran into a problem with the feature template.
encoded_img = @browser.driver.screenshot_as(:base64)
embed("data:image/png;base64,#{encoded_img}",'image/png')
Based on the feature template the resulting HTML is as follows.
src="images/data:image/png;base64,iVBORw0.....
In order to get the embedded image to display I had to remove "images/" from the feature template.
<img id='<%= scenario.image_id %>' style='display: none' src='<%= feature.directory_prefix_for(feature.file) %><%= scenario.image %>'/>
This works for me but it would be nice if instead of appending the images/ to everything in the features template it was appended in the HTML file here with the scenario image file name.
def embed(src, mime_type, label)
case(mime_type)
when /^image\/(png|gif|jpg|jpeg)/
embed_image(src, label)
end
end
def embed_image(src, label)
@report.current_scenario.image = src.split(separator).last
@report.current_scenario.image_label = label
@report.current_scenario.image_id = "img_#{@img_id}"
@img_id += 1
filename = "#{File.dirname(@path)}#{separator}images"
FileUtils.cp src, filename
end
It looks as though it would be possible to account for embedded images here and either apply the "images/" to the front or not.
Thanks,
Adam
If I output to the normal HTML any "puts" show up. However if I use the pretty_face output they do not. Normally we don't print in the steps but needed it for only one scenario.
To env.rb I added:
Before do |scenario|
$world = self
end
In the step I used:
$world.puts "Fruit name: #{fruit_name}"
When outputting to html it shows up as
Any way to have the prints appear in the results file with pretty_face?
Thanks.
Hi Guys,
When i tried to create pretty face report i get the below error
i used pretty_face as :: calabash-android run tablet_build5.apk --format PrettyFace::Formatter::HTML --out result/index.html --tags @clean LOGIN=[email protected]:qwerty
Could not find 'syntax' (>= 0) among 199 total gem(s)
Error creating formatter: PrettyFace::Formatter::HTML (Gem::LoadError)
/Library/Ruby/Site/2.0.0/rubygems/dependency.rb:298:in to_specs' /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1295:in
block in activate_dependencies'
/Library/Ruby/Site/2.0.0/rubygems/specification.rb:1284:in each' /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1284:in
activate_dependencies'
/Library/Ruby/Site/2.0.0/rubygems/specification.rb:1266:in activate' /Library/Ruby/Site/2.0.0/rubygems.rb:196:in
rescue in try_activate'
/Library/Ruby/Site/2.0.0/rubygems.rb:193:in try_activate' /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:132:in
rescue in require'
/Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:144:in require' /Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/constantize.rb:17:in
rescue in constantize'
/Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/constantize.rb:6:in constantize' /Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/cli/configuration.rb:83:in
formatter_class'
/Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/cli/configuration.rb:182:in block in formatters' /Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/cli/configuration.rb:178:in
map'
/Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/cli/configuration.rb:178:in formatters' /Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/cli/configuration.rb:76:in
build_tree_walker'
/Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/runtime.rb:46:in run!' /Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/lib/cucumber/cli/main.rb:47:in
execute!'
/Library/Ruby/Gems/2.0.0/gems/cucumber-1.3.15/bin/cucumber:13:in <top (required)>' /usr/bin/cucumber:23:in
load'
/usr/bin/cucumber:23:in `
Can you please help me with this ?
Ran bundle update and started getting the following error with pretty_face 0.10.1
uninitialized constant ActionView::LookupContext::DetailsKey::Mime (NameError)
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/lookup_context.rb:69:in get' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/lookup_context.rb:93:in
details_key'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/lookup_context.rb:160:in detail_args_for' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/lookup_context.rb:154:in
args_for_lookup'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/lookup_context.rb:124:in find' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/renderer/abstract_renderer.rb:18:in
find_template'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/renderer/template_renderer.rb:33:in block in determine_template' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/lookup_context.rb:145:in
with_fallbacks'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/renderer/abstract_renderer.rb:18:in with_fallbacks' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/renderer/template_renderer.rb:33:in
determine_template'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/renderer/template_renderer.rb:8:in render' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/renderer/renderer.rb:42:in
render_template'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/renderer/renderer.rb:23:in render' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionview-4.1.0/lib/action_view/helpers/rendering_helper.rb:32:in
render'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.10/lib/pretty_face/formatter/html.rb:157:in generate_report' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.10/lib/pretty_face/formatter/html.rb:126:in
after_features'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.14/lib/cucumber/ast/tree_walker.rb:181:in block in send_to_all' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.14/lib/cucumber/ast/tree_walker.rb:179:in
each'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.14/lib/cucumber/ast/tree_walker.rb:179:in send_to_all' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.14/lib/cucumber/ast/tree_walker.rb:171:in
broadcast'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.14/lib/cucumber/ast/tree_walker.rb:20:in visit_features' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.14/lib/cucumber/runtime.rb:49:in
run!'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.14/lib/cucumber/cli/main.rb:47:in execute!' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.14/bin/cucumber:13:in
<top (required)>'
/Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/bin/cucumber:23:in load' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/bin/cucumber:23:in
eval' /Users/tester/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/bin/ruby_executable_hooks:14:in
'
Tried 0.10.0 and had the same issue. It results in blank output files.
Hi Folks,
I noticed @cheezy pushed a commit updating the require statements to core/ast, and I think it is time we pushed and updated Pretty Face to be fully Cucumber 2.0 compatible.
I have found the following roadblocks thus far:
1. ensure_io now only takes a single argument
Offending Code: html.rb-46
@io = ensure_io(path_or_io, 'html')
2. Cucumber::Ast API calls are deprecated
Offending Code: html.rb & report.rb
Cucumber::Ast::Table::Cells
Cucumber::Ast::ScenarioOutline
Cucumber::Ast::Background
Cucumber::Ast::OutlineTable::ExampleRow
Cucumber::Ast::Scenario
Some of these calls can simply be updated to Cucumber::Core::Ast, but others have been removed/renamed in the Cucumber code-base and need to be rebuilt.
I am working on a set of local updates and believe I am close to solving the above roadblocks, I will report back with my results and hopefully we can get this translated to a pull request soon.
Best,
J
Installed Pretty face gem and added to cucumber.yml
--format PrettyFace::Formatter::Html --out results/index.html
Ran my feature file but I get this error:
Errror in terminal:
undefined method cattr_accessor' for ActionView::Base:Class Did you mean? attr_accessor Error creating formatter: PrettyFace::Formatter::Html Did you mean? attr_accessor (NoMethodError) /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/actionpack-1.4.0/lib/action_view/base.rb:129:in
class:Base'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/actionpack-1.4.0/lib/action_view/base.rb:119:in <module:ActionView>' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/actionpack-1.4.0/lib/action_view/base.rb:3:in
<top (required)>'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in
require'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/actionpack-1.4.0/lib/action_view.rb:33:in <top (required)>' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in
require'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/pretty_face-0.3/lib/pretty_face/formatter/html.rb:1:in
<top (required)>'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in require' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in
rescue in require'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in require' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/constantize.rb:18:in
rescue in constantize'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/constantize.rb:7:in constantize' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/configuration.rb:210:in
formatter_class'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/configuration.rb:195:in block in formatter_factories' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/configuration.rb:193:in
map'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/configuration.rb:193:in formatter_factories' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/runtime.rb:196:in
formatters'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/runtime.rb:181:in report' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/runtime.rb:71:in
run!'
/Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/lib/cucumber/cli/main.rb:33:in execute!' /Users/marklane/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cucumber-3.1.0/bin/cucumber:9:in
<top (required)>'
/Users/marklane/.rbenv/versions/2.3.3/bin/cucumber:22:in load' /Users/marklane/.rbenv/versions/2.3.3/bin/cucumber:22:in
<top (required)>'
-e:1:in load' -e:1:in
Process finished with exit code 2
Empty test suite.
I see the Screenshot location in HTML report always looks for src = \images - instead i want to change this to custom location within my project, can someone help me to achieve this ?
The index file only seems to show the last feature test completed. The subdirectories and results for each feature are there in the proper location it just does not seem to get linked to the index file.
My feature tests are run using parallel_cucumber. Is there something I need to change to make all results show in the index?
To run my feature tests I do the following: parallel_cucumber features/cereal/
In cucumber.yml I have: parallel: FIG_NEWTON_FILE=qa.yml ENV=GRID --expand --color --require features --format PrettyFace::Formatter::Html --out results/index.html
Hi @cheezy,
I recently finished your book 'Cucumber & Cheese' and I am loving the base framework I now have for automation projects.
My biggest snag currently is not having a way to embed Faker/Data-Magic data in my report. For example, I generate a dynamic username & password for each test run, and I would like to share those credentials in the report. Ideally within the scenario that they are created.
When using explicit input tables for scenarios, Pretty Face makes beautiful tables in the report. Would it be possible to pass an text/hash embed statement to Pretty Face on the Scenario After hook?
Thanks in advance for any inputs you might have. Also, thanks for making such easy to read tutorials and book chapters!
I am getting this error when I run my tests in parallel.
undefined method +' for nil:NilClass (ActionView::Template::Error) /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/report.rb:247:in
snippet'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/report.rb:228:in extra_failure_content' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/templates/_step.erb:37:in
___sers_qauser__rvm_rubies_ruby_______p____lib_ruby_gems_______gems_pretty_face_______lib_pretty_face_templates__step_erb___278293468819112096_70173996326860'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/template.rb:143:in block in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/notifications.rb:161:in
instrument'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/template.rb:141:in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/partial_renderer.rb:306:in
render_partial'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/partial_renderer.rb:279:in block in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/abstract_renderer.rb:38:in
block in instrument'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/notifications.rb:159:in block in instrument' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/notifications/instrumenter.rb:20:in
instrument'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/notifications.rb:159:in instrument' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/abstract_renderer.rb:38:in
instrument'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/partial_renderer.rb:278:in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/renderer.rb:47:in
render_partial'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/helpers/rendering_helper.rb:27:in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/templates/feature.erb:109:in
block (2 levels) in ___sers_qauser__rvm_rubies_ruby_______p____lib_ruby_gems_______gems_pretty_face_______lib_pretty_face_templates_feature_erb___720800486048250610_70173996255100'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/templates/feature.erb:104:in each' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/templates/feature.erb:104:in
block in ___sers_qauser__rvm_rubies_ruby_______p____lib_ruby_gems_______gems_pretty_face_______lib_pretty_face_templates_feature_erb___720800486048250610_70173996255100'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/templates/feature.erb:99:in each' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/templates/feature.erb:99:in
___sers_qauser__rvm_rubies_ruby_______p____lib_ruby_gems_______gems_pretty_face_______lib_pretty_face_templates_feature_erb___720800486048250610_70173996255100'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/template.rb:143:in block in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/notifications.rb:161:in
instrument'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/template.rb:141:in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/template_renderer.rb:49:in
block (2 levels) in render_template'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/abstract_renderer.rb:38:in block in instrument' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/notifications.rb:159:in
block in instrument'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/notifications/instrumenter.rb:20:in instrument' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/notifications.rb:159:in
instrument'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/abstract_renderer.rb:38:in instrument' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/template_renderer.rb:48:in
block in render_template'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/template_renderer.rb:56:in render_with_layout' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/template_renderer.rb:47:in
render_template'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/template_renderer.rb:17:in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/renderer.rb:42:in
render_template'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/renderer/renderer.rb:23:in render' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/actionpack-4.0.2/lib/action_view/helpers/rendering_helper.rb:24:in
render'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:169:in write_feature_file' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:156:in
block in generate_report'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:155:in each' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:155:in
generate_report'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/pretty_face-0.9.1/lib/pretty_face/formatter/html.rb:123:in after_features' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/ast/tree_walker.rb:181:in
block in send_to_all'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/ast/tree_walker.rb:179:in each' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/ast/tree_walker.rb:179:in
send_to_all'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/ast/tree_walker.rb:171:in broadcast' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/ast/tree_walker.rb:20:in
visit_features'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/runtime.rb:49:in run!' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/cli/main.rb:47:in
execute!'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/bin/cucumber:13:in <top (required)>' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/bin/cucumber:23:in
load'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/bin/cucumber:23:in <main>' /Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/bin/ruby_executable_hooks:14:in
eval'
/Users/qauser/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/bin/ruby_executable_hooks:14:in `
Been getting these random errors. The result is a blank page for the feature results.
HTML reports are not generated when executed from ruby mine on windows.
Reports get generated when executed from command prompt. Followed all the steps from cucumber and cheese book.
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.