Livingdoc仅生成上一次运行测试的报告
我是Specflow的新手。我有20个功能,并通过了。但是当我生成LivingDoc报告时,它显示仅出于最后执行的功能传递。它显示了其余功能的“未执行”。谁能帮我在哪里犯错?
我的项目树是:
|-Project
+----Feature
|------Login.feature
+----Steps
|------Login.cs
+----Drivers
|------SetDriver.cs
+----Hooks
|------BrowserHook.cs
+----Pages
|------PageObjectManager.cs
|------LoginPage.cs
驱动程序设置:
public class SetDrivers
{
private Lazy<IWebDriver> _driver;
public SetDrivers()
{
_driver = new Lazy<IWebDriver>(Setup);
}
public IWebDriver Current => _driver.Value;
public IWebDriver Setup()
{
var chromeDriverServices = ChromeDriverService.CreateDefaultService();
var browserOption = GetBrowserOptions("chrome");
var driver = new ChromeDriver(chromeDriverServices, browserOption);
driver.Manage().Window.Maximize();
return driver;
}
private dynamic GetBrowserOptions(String browserName)
{
if (browserName.ToLower() == "chrome")
{
return new ChromeOptions();
}
else if (browserName.ToLower() == "firefox")
{
return new FirefoxOptions();
}
else
{
return new ChromeOptions();
}
}
}
钩子:
[Binding]
public sealed class BrowserHooks
{
[BeforeTestRun]
public static void BeforeTestRun(ObjectContainer objectContainer)
{
objectContainer.BaseContainer.Resolve<SetDrivers>();
}
[BeforeScenario ("Smoke")]
public static void BeforeSenerio(SetDrivers drivers)
{
var pageObjects = new PageObjectManager(drivers.Current);
pageObjects.loadUrl();
}
[AfterScenario]
public void AfterScenario(SetDrivers drivers)
{
var pageObjects = new PageObjectManager(drivers.Current);
pageObjects.tearDown();
}
}
步骤:
[Binding]
public class LoginSteps
{
private LoginPage _loginPage;
public LoginSteps(SetDrivers drivers)
{
_loginPage = new LoginPage(drivers.Current);
}
[Given(@"user is in login page")]
public void GivenUserIsInLoginPage()
{
_loginPage.clickLoginBtn();
}
[When(@"user Enters ""(.*)"" and ""(.*)""")]
public void WhenUserEntersAnd(string email, string password)
{
_loginPage.setUserEmail(email);
_loginPage.setPassword(password);
}
[When(@"click Login Button")]
public void WhenClickLoginButton()
{
_loginPage.clickLogin();
}
[Then(@"Home Page should be visible")]
public void ThenHomePageShouldBeVisible()
{
Assert.IsTrue(_loginPage.isLoggedIn());
}
}
功能:
Feature: Login
User login test
@Smoke
Scenario Outline: User wants to login with valid email and password
Given user is in login page
When user Enters "<Email>" and "<Password>"
And click Login Button
Then Home Page should be visible
Examples:
| Email | Password |
| [email protected] | 121212A |
页面对象管理器:< /strong>
public class PageObjectManager
{
private const string url = "https://www.pinterest.com/";
private readonly IWebDriver _webDriver;
public PageObjectManager(IWebDriver webDriver)
{
_webDriver = webDriver;
}
public void loadUrl()
{
_webDriver.Url = url;
}
public void tearDown()
{
if (_webDriver != null)
{
_webDriver.Quit();
}
}
}
I am new to Specflow. I have 20 features and passed. But when I generated the Livingdoc report, it shows passed for only the last executed feature. It shows "Not executed" for the rest of the features. Can anyone help me where I am making mistakes?
My Project tree is:
|-Project
+----Feature
|------Login.feature
+----Steps
|------Login.cs
+----Drivers
|------SetDriver.cs
+----Hooks
|------BrowserHook.cs
+----Pages
|------PageObjectManager.cs
|------LoginPage.cs
Driver Setup:
public class SetDrivers
{
private Lazy<IWebDriver> _driver;
public SetDrivers()
{
_driver = new Lazy<IWebDriver>(Setup);
}
public IWebDriver Current => _driver.Value;
public IWebDriver Setup()
{
var chromeDriverServices = ChromeDriverService.CreateDefaultService();
var browserOption = GetBrowserOptions("chrome");
var driver = new ChromeDriver(chromeDriverServices, browserOption);
driver.Manage().Window.Maximize();
return driver;
}
private dynamic GetBrowserOptions(String browserName)
{
if (browserName.ToLower() == "chrome")
{
return new ChromeOptions();
}
else if (browserName.ToLower() == "firefox")
{
return new FirefoxOptions();
}
else
{
return new ChromeOptions();
}
}
}
Hooks:
[Binding]
public sealed class BrowserHooks
{
[BeforeTestRun]
public static void BeforeTestRun(ObjectContainer objectContainer)
{
objectContainer.BaseContainer.Resolve<SetDrivers>();
}
[BeforeScenario ("Smoke")]
public static void BeforeSenerio(SetDrivers drivers)
{
var pageObjects = new PageObjectManager(drivers.Current);
pageObjects.loadUrl();
}
[AfterScenario]
public void AfterScenario(SetDrivers drivers)
{
var pageObjects = new PageObjectManager(drivers.Current);
pageObjects.tearDown();
}
}
Steps:
[Binding]
public class LoginSteps
{
private LoginPage _loginPage;
public LoginSteps(SetDrivers drivers)
{
_loginPage = new LoginPage(drivers.Current);
}
[Given(@"user is in login page")]
public void GivenUserIsInLoginPage()
{
_loginPage.clickLoginBtn();
}
[When(@"user Enters ""(.*)"" and ""(.*)""")]
public void WhenUserEntersAnd(string email, string password)
{
_loginPage.setUserEmail(email);
_loginPage.setPassword(password);
}
[When(@"click Login Button")]
public void WhenClickLoginButton()
{
_loginPage.clickLogin();
}
[Then(@"Home Page should be visible")]
public void ThenHomePageShouldBeVisible()
{
Assert.IsTrue(_loginPage.isLoggedIn());
}
}
Feature:
Feature: Login
User login test
@Smoke
Scenario Outline: User wants to login with valid email and password
Given user is in login page
When user Enters "<Email>" and "<Password>"
And click Login Button
Then Home Page should be visible
Examples:
| Email | Password |
| [email protected] | 121212A |
Page object manager:
public class PageObjectManager
{
private const string url = "https://www.pinterest.com/";
private readonly IWebDriver _webDriver;
public PageObjectManager(IWebDriver webDriver)
{
_webDriver = webDriver;
}
public void loadUrl()
{
_webDriver.Url = url;
}
public void tearDown()
{
if (_webDriver != null)
{
_webDriver.Quit();
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
更多
发布评论