TestStack White - 从命令行运行测试
Posted
技术标签:
【中文标题】TestStack White - 从命令行运行测试【英文标题】:TestStack White - Run tests from command line 【发布时间】:2018-01-03 14:00:21 【问题描述】:我正在寻找从命令行开始测试的解决方案。
我在 VisualStudio2017 中为我的 .NET 解决方案创建了一个 UnitTest Procjet。 向项目中添加了 TestStack.White NuGet 包。 当我从 VisualStudio2017 启动时,测试运行流畅。我也想从 Jenkins 开始。我认为从命令行执行它是最简单的,所以我将它添加到我的管道配置(Jenkinsfile)中
stage('Run UI Tests')
steps
bat('"C:\\PATH_TO_MSTEST\\mstest" /testcontainer:PATH_TO_MY_TEST_PROJECT\\bin\\Debug\\MyTests.dll')
当我尝试像使用常规单元测试一样从 cmd 启动它时,它不起作用。 它说:
Starting execution...
No tests to execute.
我在开始“运行 UI 测试”阶段之前构建项目。
任何想法如何使它工作?真的可以在 ***、TestStack 的 github 问题或网络上其他荣耀的地方找到它
【问题讨论】:
您是否尝试远程运行这些测试?我知道我的 TFS 构建存在与远程时计算机不接受 UI 操作相关的问题(通过选中显示“UI 测试”的复选框来解决)。 Jenkins 在代理上运行它。我想它是遥远的。我使用带有管道模式的 Jenkins,提供 Jenkinsfile,告诉它的步骤。 这听起来很像我当时所知道的。抱歉,我不能提供更多帮助,祝你好运。 找到了解决办法,马上回答一下 【参考方案1】:找到了解决办法。 在我的本地开发人员机器上,它正在运行,mstest 版本是 14 在构建代理机器上,mstest 版本是 15,它无法正常工作(它与 TestStack White 无关,只是单元测试无法正常工作)
我所做的是,调用 vstest.console.exe 而不是 mstest。
C:\Program Files (x86)\Microsoft Visual Studio\2017\TestAgent\Common7\IDE\Extensions\TestPlatform\vstest.console.exe
所以,而不是
stage('Run UI Tests')
steps
bat('"C:\\PATH_TO_MSTEST\\mstest" /testcontainer:PATH_TO_MY_TEST_PROJECT\\bin\\Debug\\MyTests.dll')
我在 Jenkinsfile 中的命令是:
stage('Run UiTests')
steps
bat('"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\TestAgent\\Common7\\IDE\\Extensions\\TestPlatform\\vstest.console.exe" PATH_TO_MY_TEST_PROJECT\\bin\\Debug\\MyTests.dll')
【讨论】:
【参考方案2】:nunit3-console 是 MSTEST 的绝佳替代品。请参考以下链接。
例如 nunit3-console \bin\Debug\Automation.dll --where "cat=Smoke-Tests"
https://github.com/nunit/docs/wiki/Console-Command-Line
【讨论】:
以上是关于TestStack White - 从命令行运行测试的主要内容,如果未能解决你的问题,请参考以下文章
如何使用TestStack.White模拟WPF中动态MenuItem的点击?
如何使用 TestStack.White.UIItems 测试 ItemsControl
我似乎在 TestStack White 的 ListView.Row("Name", "Value") 方法中有一个错误