In the Test Runner class I don’t fully understand this line ”’@RunWith(Cucumber.class)”’. If I am not mistaken, @RunWith is TestNG (and also JUnit) annotation. So, if you have Cucumber without those frameworks, how do you make your test cases run? Besides, what is in parenthesis defines a class Cucumber (that is what class keyword does), however that Class already exists. It is not a predefined class (like HashMap under utils). What is the purpose of creating a brand new class without any body?