如何使用 vstest.console.exe 在 cmd 中 运行 Specflow feature/scenarios?
How to run Specflow feature/scenarios in cmd using vstest.console.exe?
我有一个功能文件定义为
Feature: Portal Sign in
In order to login to my portal
As a User
I have input user id and password
Scenario: User Login
Given I have entered username and password
When The user clicks on Login button
Then logged in successfully pop up message should be displayed
我试过这个命令:
vstest.console.exe tests.dll /TestCaseFilter:"FullyQualifiedName~PortalSigninFeature"
但它 returns 没有匹配给定测试用例过滤器的测试。我错过了什么吗?
另外,您如何建议 运行 使用 cmd 的场景?
编辑:
如果场景大纲如下所示
Scenario Outline: Multiple User Login
Given I have entered <username> and <password>
When The user clicks on Login button
Then logged in successfully pop up message should be displayed
Examples:
|username|password|
|User1 |pwd1 |
|User2 |pwd2 |
当我运行下面的cmd
SpecRun.exe run D:\SpecFlow\bin\Debug\MySpecFlowTests.dll --filter testpath:"Scenario:Multiple+User+Login"
发现的测试显示为 0。
我是否应该更改任何内容以使其适用于场景大纲?
当我从命令行在 jenkins 中 运行 这个时,我有以下内容。我正在为 运行 学习者使用 SpecRun。这确实需要一个 RunSettings 文件。
cd "C:\Program Files (x86)\Microsoft Visual Studio19\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow" vstest.console.exe /settings:E\MyPath\To\RunSettings\ E:\MyPathTo\Test.dll /ResultsDirectory:E:\MyPath\ /TestCaseFilter: "(TestCategory=MyTag)"
我创建了一个名为 Jenkins 的文件夹,RunSettings 和 .srprofile 都位于该文件夹中。
RunSettings 文件指向 .srprofile
<RunSettings>
<!-- Configurations for SpecFlow+ Runner -->
<SpecRun>
<Profile>Jenkins/MyTest.srprofile</Profile>
<GenerateSpecRunTrait>false</GenerateSpecRunTrait>
<GenerateFeatureTrait>false</GenerateFeatureTrait>
</SpecRun>
</RunSettings>
如果您将 SpecRun 作为 运行 用户使用,您也可以从 cmd 行 运行 执行此操作。相应地更新 运行ner 版本。
cd E:\Path\to\packages\SpecRun.Runner.3.3.*\tools\net461
SpecRun.exe run PathTo/My.srprofile --baseFolder E:\Path\To\bin\Debug --filter "@TagL" --log specrun.log
要按功能名称 运行,您将使用:
SpecRun.exe run D:\Path\Jenkins\My.srprofile --baseFolder D:\Path\bin\Debug --filter testpath:"Feature:MyFeature*" --log specrun.log
通配符将匹配任何以“MyFeature”开头的内容。
https://docs.specflow.org/projects/specflow-runner/en/latest/Profile/Filter.html
我有一个功能文件定义为
Feature: Portal Sign in
In order to login to my portal
As a User
I have input user id and password
Scenario: User Login
Given I have entered username and password
When The user clicks on Login button
Then logged in successfully pop up message should be displayed
我试过这个命令:
vstest.console.exe tests.dll /TestCaseFilter:"FullyQualifiedName~PortalSigninFeature"
但它 returns 没有匹配给定测试用例过滤器的测试。我错过了什么吗?
另外,您如何建议 运行 使用 cmd 的场景?
编辑:
如果场景大纲如下所示
Scenario Outline: Multiple User Login
Given I have entered <username> and <password>
When The user clicks on Login button
Then logged in successfully pop up message should be displayed
Examples:
|username|password|
|User1 |pwd1 |
|User2 |pwd2 |
当我运行下面的cmd
SpecRun.exe run D:\SpecFlow\bin\Debug\MySpecFlowTests.dll --filter testpath:"Scenario:Multiple+User+Login"
发现的测试显示为 0。
我是否应该更改任何内容以使其适用于场景大纲?
当我从命令行在 jenkins 中 运行 这个时,我有以下内容。我正在为 运行 学习者使用 SpecRun。这确实需要一个 RunSettings 文件。
cd "C:\Program Files (x86)\Microsoft Visual Studio19\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow" vstest.console.exe /settings:E\MyPath\To\RunSettings\ E:\MyPathTo\Test.dll /ResultsDirectory:E:\MyPath\ /TestCaseFilter: "(TestCategory=MyTag)"
我创建了一个名为 Jenkins 的文件夹,RunSettings 和 .srprofile 都位于该文件夹中。
RunSettings 文件指向 .srprofile
<RunSettings>
<!-- Configurations for SpecFlow+ Runner -->
<SpecRun>
<Profile>Jenkins/MyTest.srprofile</Profile>
<GenerateSpecRunTrait>false</GenerateSpecRunTrait>
<GenerateFeatureTrait>false</GenerateFeatureTrait>
</SpecRun>
</RunSettings>
如果您将 SpecRun 作为 运行 用户使用,您也可以从 cmd 行 运行 执行此操作。相应地更新 运行ner 版本。
cd E:\Path\to\packages\SpecRun.Runner.3.3.*\tools\net461
SpecRun.exe run PathTo/My.srprofile --baseFolder E:\Path\To\bin\Debug --filter "@TagL" --log specrun.log
要按功能名称 运行,您将使用:
SpecRun.exe run D:\Path\Jenkins\My.srprofile --baseFolder D:\Path\bin\Debug --filter testpath:"Feature:MyFeature*" --log specrun.log
通配符将匹配任何以“MyFeature”开头的内容。
https://docs.specflow.org/projects/specflow-runner/en/latest/Profile/Filter.html