[wtr-general] Re: Embed screenshot in Watir-rspec report (not just for failed tests)
Hi Jarmo, You give some good points to think about. I agree that there should be no reason to look at the reports when they don't fail. On the level on integration testing, we're mostly interested in the layout of the Flot graph (scaling/stacking of bars etc.) and I'm not sure if unit testing the data given to the Flot graph will cover this 'requirement'. Maybe I can extract the location of a bar in the Flot graph using Javascript and then interact with that using Watir-webdriver. This will require some more research on my part and is probably more related to Flot than Watir ;) Regards, Arjen On Tuesday, April 15, 2014 12:07:04 PM UTC+2, Arjen Ruiterkamp wrote: Hello, For some acceptance tests I want to include screenshots, which are made during my specs, to the report (thus not just for failing specs). The watir-rspec readme states: You can use Watir::RSpec.file_path to have links automatically in the html report to the files created during tests. uploaded_file_path = Watir::RSpec.file_path(uploaded.txt)File.open(uploaded_file_path, w) {|file| file.write Generated File Input}file_field(:name = upload-file).set uploaded_file_path Where do I put this code? When I put it in my spec_helper.rb, I get this error: undefined method `file_field' for main:Object (NoMethodError) Anyone has some ideas what I'm doing wrong? -- -- Before posting, please read http://watir.com/support. In short: search before you ask, be nice. watir-general@googlegroups.com http://groups.google.com/group/watir-general watir-general+unsubscr...@googlegroups.com --- You received this message because you are subscribed to the Google Groups Watir General group. To unsubscribe from this group and stop receiving emails from it, send an email to watir-general+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[wtr-general] Re: Embed screenshot in Watir-rspec report (not just for failed tests)
Hi Jarmo, thanks for replying I'll clarify a bit what I would like in my rspec report. I don't want to make a screenshot after *every *spec, just during some of the specs which test Flot graphs (a Javascript library for displaying graphs). These Flot graphs are pretty hard to interact with using Watir-Webdriver thus I want to add a screenshot to the report (or a link to the screenshot) so our testers can quickly check if nothing weird is going on. So my (simplified) spec looks like this: describe do something once logged in do it should screenshot the flot graph do screenshot.save 'flot.png' end end Then the generated report should look like this: https://lh6.googleusercontent.com/-vsIEoAadNmE/U1DTkUF0yoI/ACU/VzUQ0FuRcSM/s1600/rspec.png Hopefully this clears up my question. Is this possible with just watir-rspec or is some form of monkey patching required? Regards, Arjen On Tuesday, April 15, 2014 12:07:04 PM UTC+2, Arjen Ruiterkamp wrote: Hello, For some acceptance tests I want to include screenshots, which are made during my specs, to the report (thus not just for failing specs). The watir-rspec readme states: You can use Watir::RSpec.file_path to have links automatically in the html report to the files created during tests. uploaded_file_path = Watir::RSpec.file_path(uploaded.txt)File.open(uploaded_file_path, w) {|file| file.write Generated File Input}file_field(:name = upload-file).set uploaded_file_path Where do I put this code? When I put it in my spec_helper.rb, I get this error: undefined method `file_field' for main:Object (NoMethodError) Anyone has some ideas what I'm doing wrong? -- -- Before posting, please read http://watir.com/support. In short: search before you ask, be nice. watir-general@googlegroups.com http://groups.google.com/group/watir-general watir-general+unsubscr...@googlegroups.com --- You received this message because you are subscribed to the Google Groups Watir General group. To unsubscribe from this group and stop receiving emails from it, send an email to watir-general+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[wtr-general] Re: Embed screenshot in Watir-rspec report (not just for failed tests)
Hi! Unfortunately there's no built-in support for such a requirement in `watir-rspec` nor `rspec` itself. However, you can achieve that quite easily by creating your own `HtmlFormatter`. Easiest would be to extend `Watir::RSpec::HtmlFormatter` (https://github.com/watir/watir-rspec/blob/master/lib/watir/rspec/html_formatter.rb) and then override `example_passed` from `RSpec::Core::Formatters::HtmlFormatter` (https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/formatters/html_formatter.rb#L48-L52) and insert the links created during your specs from `@files_saved_during_example`. It seems to me that you need to create a different method for printing out the html than it is done currently by RSpec at `HtmlPrinter` (https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/formatters/html_printer.rb#L29-L32). Then, in your specs you just need to save the screenshot like this: browser.screenshot.save Watir::RSpec.file_path(uploaded.txt) # = this creates a unique file name and adds it to the `@files_saved_during_example` array as well. Also, refer to the code currently adding links to files created during failing specs to get some idea how it is done: https://github.com/watir/watir-rspec/blob/master/lib/watir/rspec/html_formatter.rb#L47-L51 And don't forget to use your own HtmlFormatter in spec_helper instead of Watir::RSpec::HtmlFormatter. The whole approach written above is not tested in practice, but seems to be doable in theory without monkey-patching, but using regular OO programming practices :) Jarmo Pertman - IT does really matter - http://itreallymatters.net On Friday, April 18, 2014 10:30:21 AM UTC+3, Arjen Ruiterkamp wrote: Hi Jarmo, thanks for replying I'll clarify a bit what I would like in my rspec report. I don't want to make a screenshot after *every *spec, just during some of the specs which test Flot graphs (a Javascript library for displaying graphs). These Flot graphs are pretty hard to interact with using Watir-Webdriver thus I want to add a screenshot to the report (or a link to the screenshot) so our testers can quickly check if nothing weird is going on. So my (simplified) spec looks like this: describe do something once logged in do it should screenshot the flot graph do screenshot.save 'flot.png' end end Then the generated report should look like this: https://lh6.googleusercontent.com/-vsIEoAadNmE/U1DTkUF0yoI/ACU/VzUQ0FuRcSM/s1600/rspec.png Hopefully this clears up my question. Is this possible with just watir-rspec or is some form of monkey patching required? Regards, Arjen On Tuesday, April 15, 2014 12:07:04 PM UTC+2, Arjen Ruiterkamp wrote: Hello, For some acceptance tests I want to include screenshots, which are made during my specs, to the report (thus not just for failing specs). The watir-rspec readme states: You can use Watir::RSpec.file_path to have links automatically in the html report to the files created during tests. uploaded_file_path = Watir::RSpec.file_path(uploaded.txt)File.open(uploaded_file_path, w) {|file| file.write Generated File Input}file_field(:name = upload-file).set uploaded_file_path Where do I put this code? When I put it in my spec_helper.rb, I get this error: undefined method `file_field' for main:Object (NoMethodError) Anyone has some ideas what I'm doing wrong? -- -- Before posting, please read http://watir.com/support. In short: search before you ask, be nice. watir-general@googlegroups.com http://groups.google.com/group/watir-general watir-general+unsubscr...@googlegroups.com --- You received this message because you are subscribed to the Google Groups Watir General group. To unsubscribe from this group and stop receiving emails from it, send an email to watir-general+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[wtr-general] Re: Embed screenshot in Watir-rspec report (not just for failed tests)
Now, after giving some thoughts about it - the way you try to solve it is not best solution for your problem. I mean, automated tests should be automated - if test does not fail then there should be any reason to look at the reports. By making test pass and then looking at the screenshot attached to the report to make sure that it really passed seems wrong. Correct solution would be to test it on some lower level. For example, test the data given to the Flot library. Best solution would be to use JavaScript unit testing in that case, but you can also do it by using Watir::Browser#execute_script by returning some JavaScript object back to Ruby and then asserting there. Jarmo Pertman - IT does really matter - http://itreallymatters.net On Friday, April 18, 2014 1:58:13 PM UTC+3, Jarmo Pertman wrote: Hi! Unfortunately there's no built-in support for such a requirement in `watir-rspec` nor `rspec` itself. However, you can achieve that quite easily by creating your own `HtmlFormatter`. Easiest would be to extend `Watir::RSpec::HtmlFormatter` ( https://github.com/watir/watir-rspec/blob/master/lib/watir/rspec/html_formatter.rb) and then override `example_passed` from `RSpec::Core::Formatters::HtmlFormatter` ( https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/formatters/html_formatter.rb#L48-L52) and insert the links created during your specs from `@files_saved_during_example`. It seems to me that you need to create a different method for printing out the html than it is done currently by RSpec at `HtmlPrinter` ( https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/formatters/html_printer.rb#L29-L32 ). Then, in your specs you just need to save the screenshot like this: browser.screenshot.save Watir::RSpec.file_path(uploaded.txt) # = this creates a unique file name and adds it to the `@files_saved_during_example` array as well. Also, refer to the code currently adding links to files created during failing specs to get some idea how it is done: https://github.com/watir/watir-rspec/blob/master/lib/watir/rspec/html_formatter.rb#L47-L51 And don't forget to use your own HtmlFormatter in spec_helper instead of Watir::RSpec::HtmlFormatter. The whole approach written above is not tested in practice, but seems to be doable in theory without monkey-patching, but using regular OO programming practices :) Jarmo Pertman - IT does really matter - http://itreallymatters.net On Friday, April 18, 2014 10:30:21 AM UTC+3, Arjen Ruiterkamp wrote: Hi Jarmo, thanks for replying I'll clarify a bit what I would like in my rspec report. I don't want to make a screenshot after *every *spec, just during some of the specs which test Flot graphs (a Javascript library for displaying graphs). These Flot graphs are pretty hard to interact with using Watir-Webdriver thus I want to add a screenshot to the report (or a link to the screenshot) so our testers can quickly check if nothing weird is going on. So my (simplified) spec looks like this: describe do something once logged in do it should screenshot the flot graph do screenshot.save 'flot.png' end end Then the generated report should look like this: https://lh6.googleusercontent.com/-vsIEoAadNmE/U1DTkUF0yoI/ACU/VzUQ0FuRcSM/s1600/rspec.png Hopefully this clears up my question. Is this possible with just watir-rspec or is some form of monkey patching required? Regards, Arjen On Tuesday, April 15, 2014 12:07:04 PM UTC+2, Arjen Ruiterkamp wrote: Hello, For some acceptance tests I want to include screenshots, which are made during my specs, to the report (thus not just for failing specs). The watir-rspec readme states: You can use Watir::RSpec.file_path to have links automatically in the html report to the files created during tests. uploaded_file_path = Watir::RSpec.file_path(uploaded.txt)File.open(uploaded_file_path, w) {|file| file.write Generated File Input}file_field(:name = upload-file).set uploaded_file_path Where do I put this code? When I put it in my spec_helper.rb, I get this error: undefined method `file_field' for main:Object (NoMethodError) Anyone has some ideas what I'm doing wrong? -- -- Before posting, please read http://watir.com/support. In short: search before you ask, be nice. watir-general@googlegroups.com http://groups.google.com/group/watir-general watir-general+unsubscr...@googlegroups.com --- You received this message because you are subscribed to the Google Groups Watir General group. To unsubscribe from this group and stop receiving emails from it, send an email to watir-general+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[wtr-general] Re: Embed screenshot in Watir-rspec report (not just for failed tests)
Hi! Are you saying that you want to take screenshots after every spec? Jarmo Pertman - IT does really matter - http://itreallymatters.net On Tuesday, April 15, 2014 1:07:04 PM UTC+3, Arjen Ruiterkamp wrote: Hello, For some acceptance tests I want to include screenshots, which are made during my specs, to the report (thus not just for failing specs). The watir-rspec readme states: You can use Watir::RSpec.file_path to have links automatically in the html report to the files created during tests. uploaded_file_path = Watir::RSpec.file_path(uploaded.txt)File.open(uploaded_file_path, w) {|file| file.write Generated File Input}file_field(:name = upload-file).set uploaded_file_path Where do I put this code? When I put it in my spec_helper.rb, I get this error: undefined method `file_field' for main:Object (NoMethodError) Anyone has some ideas what I'm doing wrong? -- -- Before posting, please read http://watir.com/support. In short: search before you ask, be nice. watir-general@googlegroups.com http://groups.google.com/group/watir-general watir-general+unsubscr...@googlegroups.com --- You received this message because you are subscribed to the Google Groups Watir General group. To unsubscribe from this group and stop receiving emails from it, send an email to watir-general+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.