Author: Karthik kk

031916_0414_Introductio1.png

Passing parameters to NUnit test via CLI using params

In this post we will discuss yet another useful feature introduced in NUnit 3.x where we can pass a parameter to NUnit test class of C# from Command Line Interface (CLI) using a new feature called –params

Passing parameters

Starting NUnit 3.x, there is an most awaited option introduced for Nunit-console runner, which is passing parameters to test method(s) via CLI using –params

What’s the use case of this?

Consider a scenario something like this, Lets say we have to test application with multiple browsers and we somehow have to parameterize the BrowserType like Firefox,Chrome,IE

Then, we can do it via CLI and pass the parameter to the whole framework to run test based on the parameter (browser type) that we passed.

Here is the complete video of the above discussion

Here is the complete modified code

You can checkout the complete code from GitHub here 

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

031916_0414_Introductio1.png

Handling multiple assert in Selenium with Assert.multiple of NUnit 3.6

In this post we will discuss how to handle multiple assert in Selenium with Assert.multiple of NUnit 3.6, this is one of the most requested feature of NUnit.

NUnit 3.6

Nunit 3.6 released by Jan 9th 2017 has number of notable improvement and features something like this

  • .NET Standard 1.6 is now supported
  • Adds support for Multiple Assert blocks
  • Added the –params option to NUnitLite
  • Theories now support Nullable enums
  • Improved assert error messages to help differentiate differences in values
  • Added warnings with Warn.If(), Warn.Unless() and Assert.Warn()
  • Enabled Path, File and Directory Asserts/Contraints for .NET Core testing
  • Added NonTestAssemblyAttribute for use by third-party developers to indicate that their assemblies reference the NUnit framework, but do not contain tests

Where is Assert.Multiple helpful ?

Consider a scenario something like this

Lets say we have to test multiple properties of an UI element in Selenium

In Nunit test framework, if the first assert fails (not meeting the condition), then the second assertion will not even takes place and the whole test fails (which we all know)

But using new Assert.Multiple method, the code can be written something like this

Benefits of Assert.Multiple

Read more

bddwithspecflow

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

framework

Automation framework with Selenium Java (Advanced)

The next big course on automation testing for Selenium with Java which got released in Udemy yesterday after months of effort named Automation framework with Selenium Java (Advanced)

This course is one of my favorite course after Automation framework development with Selenium C# (Advanced) which released early this year and chosen as the bestselling course in Udemy as well !

The course features following sections

  • Understand how to design a custom automation framework
  • Understand develop various components for automation framework in industry standard
  • Understand developing generic Page Object Model practice using Generics in Java
  • Understand developing generic Page Navigation concepts of POM using Generics in Java
  • Understand and work with custom Test Runner for TestNG
  • Understand and writing custom controls for Selenium automation by learning internals of Selenium API in-depth

Here is the complete introduction video of the above course

For purchasing the above course, do drop me an email for latest coupon code to avail discount.

Thanks,

Karthik KK

cuclogo

Working with Cucumber Hooks to Initialize and Teardown tests

In our last post we discussed working with multiple data using DataTable and Custom classes of DataTable, in this post we will discuss working with cucumber hooks and how helpful it is to initialize and teardown different test artifacts

Cucumber hooks

If you are from Specflow background, you might have noticed there are different types of hooks available like

But unfortunately in cucumber for Java we only have two hooks

  • @After
  • @Before

Limitation in cucumber for Java

In Specflow, you can call hooks for each and every steps, features, scenario, scenario block or whole test run, but its not possible with cucumber for Java

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

cuclogo

Working with multiple data using DataTable in Cucumber for Java

In our last post we discussed getting started with cucumber for Java, in this post we will discuss working with multiple data using DataTable in Cucumber for Java. We have already discussed about working with multiple data in Specflow of C#, which has Table class, but here in Cucumber for Java they have class named DataTable.

Working with multiple data in Cucumber

We might need to supply multiple data instead of hardcoded value passed in steps from feature files, this happens most of the time while working with your project

This can be done using DataTable class available in Cucumber, basically DataTables are of type List<List<String>>

Table in the scenario looks something like this

Here is the complete videos of the above discussion

Working with DataTable using DataTable.raw()

Working with DataTable using custom class

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

cuclogo

Getting started with Cucumber for Selenium

In this post we will discuss about getting started with Cucumber

Cucumber

Cucumber is a tool which helps Behavioral Driven Development (BDD).

Cucumber as a tools support different language implementation like Java, JS, PHP, Ruby, C# etc.

We have already discussed about C# based implementation of cucumber in our ExcuteAutomation channel a lot using tool called Specflow

Installation pre-requisite

In this video series, I am going to use IntelliJ IDE running on Windows 10 operating system, but you can use any IDE you like

Along with that we need following JAR files

  • Cucumber-core
  • Cucumber-java
  • Cucumber-java-deps
  • Cucumber-jvm
  • Gherkin
  • Selenium (and its related jars)

Here is the complete videos of above discussion

Video 1

Video 2

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