我正在使用SpecFlow、SpecFlow+和Selenium WebDriver为我们的应用程序构建一个测试自动化项目。我已经学习了一些教程,每个教程都有不同的观点。
- SpecFlow.org建议在创建解决方案后使用MSTest(.NET代码(或单元测试(.NET框架(
- 关于Selenium sat使用类库(.NET Framework(或单元测试(.NET Frameworkhttps://saucelabs.com/resources/articles/getting-started-with-webdriver-in-c-using-visual-studio
- 还有一些人说要使用控制台应用程序(.NET Framework(https://www.guru99.com/selenium-csharp-tutorial.html
那么,有人能告诉我们,在同一VS 2019解决方案中,SpecFlow项目使用的最佳项目类型是什么,Selenium项目使用的是什么吗?
此外,我应该将主项目作为SpecFlow,将添加的项目作为Selenium(反之亦然(吗?
有没有人用两个项目做过类似的解决方案,我可以看看?
我使用.NET核心类库。
- .Net Framework正在失去支持,所以我会避免这种情况。它们很可能是老教程
- 控制台项目允许您按";运行";因为它以
static void main
方法作为切入点,并在您想要的地方为您提供了漂亮的文本输出。这可能就是为什么您在教程中看到它更容易,但这最终会付出更多的努力,因为您不运行类似测试的程序。您将使用测试运行器启动测试
看看这里的github示例。它是selenium-nunit和specflow(不是specflow+或多项目(,但如果你需要它,它足够接近,可以给你一个想法。如果我必须转换它,我会将相关文件夹移动到他们自己的项目中。。。
关于一个解决方案中的一个项目与多个项目,我认为这对设计并不重要。如果你是一个初学者,现在就坚持使用一个,因为这样可以降低整体复杂性。做参考并不复杂,但它可能会在早期减慢你的速度。
如果你确实进行了多个项目,那么首先做什么并不重要。可能从底部开始,先做硒核心的东西。没有硒什么都跑不了,所以一切都取决于硒。你以后更有可能换掉测试/数据层。
如果从MSTest开始,单元测试或类库模板都无关紧要。所有这些都生成一个普通的类库程序集。这些项目模板之间的唯一区别是样式(经典或SDK(和默认添加的NuGet包。
在Guru99的教程中,当在教程中项目从控制台应用程序变成类库时,他们正在进行一些更改。
目前,我会根据您在项目中使用的项目格式来选择模板。为此,我将遵循我们的";入门"-选择正确模板的指南。
关于一个或多个项目:坚持一个项目。为什么要让它变得比需要的更复杂?
全面披露:我是社区经理,也是SpecFlow和SpecFlow+的维护者之一