Category: BDD

Angular automation with Protractor + Typescript + Cucumber is tagged as Best Selling course in Udemy !

Dear Friends,

I am very excited to announce that the course Angular automation with Protractor + Typescript + Cucumber  released last month has out sold comparing any other courses I have released so for in Udemy.

Today Udemy has awarded the course as one of the Best Selling in Udemy Marketplace

 

This is the second course of mine in Udemy marketplace to get Best seller hat next to Automation framework development with Selenium C# (Advanced)

Thank you very much for making this happen !

Please feel free to mail or comment below to get discount coupon if you are planning to purchase this course for slashed price.

Thanks,

Karthik KK

FindInSet an best way to verify Collection with Specflow Table

In this post we will discuss about working with FindInSet method of Specflow 2.1 (earlier versions don’t have this method).

FindInSet of Specflow v2.1

With Specflow v2.1, we now have a very handy method to verify an Specflow Table against an collection, which comes very handy while working with large set of data collection and verifying the same against an feature file specflow table something like this

Here is the complete video of the above discuss along with code demo

Here is the complete source code of the above video

Read more

Running Specflow test in Parallel using Specflow 2.0 and NUnit 3.x

In this post we will discuss one of the cool new feature introduced by Specflow 2.0, which is Parallel execution support out-of-box along with NUnit 3.x.

Does NUnit 3.x support parallel execution?

Yes it does, NUnit parallel execution support is discussed in greater details in Selenium automation with C# video series of ExecuteAutomation youtube channel

Parallel execution consideration

In order to achieve parallel test execution, there are some important consideration needed to be taken care before you ensure your test runs properly

Parallel execution with memory isolation (AppDomain)

  • Ensure your test code executing the application is not depends on static states (e.g. external cache, databases etc), if so then
  • This can be achieved by isolating test into AppDomain, this ensures that every test execution thread is hosted in a separate AppDomain and that each thread’s memory

Parallel execution without memory isolation (AppDomain)

  • If your tests do not depend on any static states (ie. do not store any test-specific information in static fields), you can run the tests in parallel without AppDomain isolation

What’s the code change in existing specflow code ?

It’s fairly very simple, just one line of additional change in AssemblyInfo.cs file and you are good to go and the change is this

Here is the complete video of the above discussion

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Thanks,
Karthik KK

Pickles an living documentation for Specflow feature file

In this post we will discuss about Pickles, an opensource tool for generating documentation for Specflow feature files.

What is Pickles

Pickles is an open source living documentation generator that works on feature files written in the Gherkin language, popularized in tools like Cucumber and SpecFlow.

Pickles can be incorporated into your build process to produce living documentation in a format that is more accessible to your clients. Gherkin language files are written in plain text and stored in your source folder

Pickles supported output formats

Pickles can produce output in different formats:

ØStatic HTML: a set of HTML files with minimal JavaScript

ØDynamic HTML: a JavaScript-rich single page app with integrated search

ØWord: Microsoft Word

ØExcel: Microsoft Excel

ØJSON: a custom JSON format

Installing Pickles via Nuget

The command to install Pickles from Nuget of Visual studio IDE is this

pickles

 

 

 

Here is the complete video of the above discussion

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Thanks,
Karthik KK

Unable to cast object System.Xml.XmlComment’ to type ‘System.Xml.XmlElement’ Specflow

In this post we will discuss about an issue which occurs in Visual studio 2015 with Specflow+Excel plugin

 Unable to cast object System.Xml.XmlComment’ to type ‘System.Xml.XmlElement’

Here is the complete video of the above fix

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Thanks,
Karthik KK

Working with Specflow+Excel (Video series)

In this post we will discuss working with Specflow+Excel plugin of Specflow. We have already discussed a lot about Specflow and their features which you can checkout from here as articles and here as videos

Specflow+Excel

  • SpecFlow+ Excel is a SpecFlow plugin that allows you to define requirements and example sets in Excel files. These requirements can be used in a same way as normal plain text Gherkin feature files.
  • There are two ways to use the Excel files to extend your specifications:
  • Define an entire feature file in Excel using the worksheets as scenarios
  • Extend scenario outline examples in normal plain text feature files with Excel tables

    Here is the scenario we are going to create (Note: Source tag @Source)

Here is the complete video of the above discussion

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Thanks,
Karthik KK

Dynamic table conversion with Specflow

In the last post of Step argument transformation, we discussed how to deal with arbitrary .Net types types using StepArgumentTranformation of specflow, in this post we will deal with dynamic table conversion of Specflow using Specflow.Assist.Dynamic package.

For more information on how to work with tables and dynamic tables of Specflow.Assist.Dynamic, please refer the two articles below

Here is the complete video of the above discussion.

Here is the code snippet from the above video

Thanks for reading the post and watching the video !!!

Please leave your comments and let me know if there is anything I should update in this post.

Thanks,
Karthik KK