Take screenshot if a Selenium test fails
authorŽeljko Filipin <zeljko.filipin@gmail.com>
Thu, 6 Jul 2017 08:54:21 +0000 (10:54 +0200)
committerŽeljko Filipin <zeljko.filipin@gmail.com>
Thu, 6 Jul 2017 08:54:21 +0000 (10:54 +0200)
Bug: T164721
Change-Id: I932fccb3fe523b526146df66950ee764bd33bac7

tests/selenium/wdio.conf.js

index adbd8c3..c8fb8a7 100644 (file)
@@ -217,8 +217,21 @@ exports.config = {
        // },
        //
        // Function to be executed after a test (in Mocha/Jasmine) or a step (in Cucumber) starts.
-       // afterTest: function (test) {
-       // },
+       // from https://github.com/webdriverio/webdriverio/issues/269#issuecomment-306342170
+       afterTest: function ( test ) {
+               var filename, filePath;
+               // if test passed, ignore, else take and save screenshot
+               if ( test.passed ) {
+                       return;
+               }
+               // get current test title and clean it, to use it as file name
+               filename = encodeURIComponent( test.title.replace( /\s+/g, '-' ) );
+               // build file path
+               filePath = this.screenshotPath + filename + '.png';
+               // save screenshot
+               browser.saveScreenshot( filePath );
+               console.log( '\n\tScreenshot location:', filePath, '\n' );
+       },
        //
        // Hook that gets executed after the suite has ended
        // afterSuite: function (suite) {