Specflow in leanft in C sharp

We can integrate the LeanFT tests with SpecFlow very easily. Please follow below steps.
  • Install SpecFlow extension for Visual Studio.
  • Add SpecFlow and SpecFlow Runner nuget packages in LeanFT project references.
  • Add feature files and step definitions.
  • Execute the scenarios.
Here is the sample feature file. In this feature file, there is a one scenario. We are checking that title of the notepad contains notepad word.
 
Feature: Notepad feature
	
@mytag
Scenario: Verify Notepad title
	Given NotePad is open
	Then I verify that title contains "Notepad" word

Then here is the step definition file for above feature file. Note that we have added LeanFT code in the steps.
 
using HP.LFT.Report;
using HP.LFT.SDK;
using HP.LFT.SDK.StdWin;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Diagnostics;
using TechTalk.SpecFlow;

namespace LeanFtTestProject1
{
    [Binding]
    public class NotepadFeatureSteps
    {
        IWindow notepadWindow;
        [Given(@"NotePad is open")]
        public void GivenNotePadIsOpen()
        {
            SDK.Init(new SdkConfiguration
            {
                ServerAddress = new Uri("ws://localhost:5095")
            });
            ReportConfiguration r = new ReportConfiguration();
            r.IsOverrideExisting = true;
            r.Title = "My LeanFT Report";

            Reporter.Init(r);

            Process appProcess = new Process
            {
                StartInfo = { FileName = @"C:WindowsSystem32
otepad.exe" }
            };
            appProcess.Start();

            notepadWindow = Desktop.Describe<IWindow>(new WindowDescription
            {
                WindowClassRegExp = "Notepad",
                Index = 0
            });
        }
        
        [Then(@"I verify that title contains ""(.*)"" word")]
        public void ThenIVerifyThatTitleContainsWord(string p0)
        {
            String title = notepadWindow.WindowTitleRegExp;
            Assert.IsTrue(title.ToLower().Contains(p0.ToLower()));
            notepadWindow.Close();
            SDK.Cleanup();
        }
    }
}

Complex problems, Simple Solutions