6

我正在寻找一种解决方案来从命令行开始我的测试。

  • 我在 VisualStudio2017 中为我的 .NET 解决方案创建了一个 UnitTest Procjet。
  • 将 TestStack.White NuGet 包添加到项目中。
  • 当我从 VisualStudio2017 开始时,测试运行流畅。
  • 我也想从詹金斯开始。我认为从命令行最容易做到这一点,所以我将它添加到我的管道配置(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 测试”阶段之前构建项目。

任何想法如何使它工作?真的可以在 stackoverflow、TestStack 的 github 问题或网络上其他荣耀的地方找到它

4

2 回答 2

2

找到了解决方案。在我的本地开发人员机器上,它正在工作,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')
            }
        }
于 2018-01-10T12:48:33.717 回答
0

nunit3-console 是 MSTEST 的绝佳替代品。请参考以下链接。

例如 nunit3-console \bin\Debug\Automation.dll --where "cat=Smoke-Tests"

https://github.com/nunit/docs/wiki/Console-Command-Line

于 2020-01-30T12:43:23.380 回答