C# 如何在GitHub操作中运行Selenium测试
我试图找到在GitHub操作中运行Selenium测试的等效命令。在Azure DevOps中,我会使用此YAML运行“Visual Studio测试”:C# 如何在GitHub操作中运行Selenium测试,c#,selenium,azure-devops,github-actions,C#,Selenium,Azure Devops,Github Actions,我试图找到在GitHub操作中运行Selenium测试的等效命令。在Azure DevOps中,我会使用此YAML运行“Visual Studio测试”: 在GitHub操作中,等效任务是什么?GitHub runner/agent中似乎不存在VsTest.Console.exe,因此答案可能涉及安装-但显然我希望避免这种情况,因为这会严重降低每个构建的速度。感谢@Eldar为我指明了正确的方向。基本答案是(在Windows runner中运行): 使用调用表达式似乎有助于解决我收到的一些初始错
在GitHub操作中,等效任务是什么?GitHub runner/agent中似乎不存在VsTest.Console.exe,因此答案可能涉及安装-但显然我希望避免这种情况,因为这会严重降低每个构建的速度。感谢@Eldar为我指明了正确的方向。基本答案是(在Windows runner中运行): 使用调用表达式似乎有助于解决我收到的一些初始错误。完整的yaml及其上下文可在以下位置查看: 注意:为了找到vstest.console.exe文件,我使用这个yaml搜索GitHub操作运行程序。存在已锁定的文件夹,因此如果搜索根C:文件夹,则会引发错误。通过上面提供的内容,我能够确定Visual Studio的根文件夹并在其中搜索vstest.console.exe:
- name: search for visual studio test runner
run: |
$var1 = Get-Childitem -Path "C:\Program Files (x86)\Microsoft Visual Studio" -Filter "vstest.console.exe" -Recurse | select -ExpandProperty FullName
Write-Host "VS test runner: $var1"
shell: powershell
由于市场上提供的操作,这一点现在变得简单多了 它仍然需要在Windows代理上运行,但YAML行的数量显著减少 下面的代码段假设一个名为“functional tests”的工件包含Selenium测试的编译资产(DLL、chromedriver.exe等),然后该工件被放入“/functional tests/”中
-name:将VSTest.console.exe添加到路径
用途:darenm/Setup-VSTest@v1
-名称:运行功能测试
运行:vstest.console.exe“功能测试\.dll”
我的经验是,如果在作业级别进行设置,则会通过
vstest.console.exe
自动获取这些设置。这可能适用于在步骤或工作流级别设置它们,但我尚未对此进行测试。似乎跑步者已经获得Visual Studio Enterprise检查此功能,谢谢,我似乎在C:\Program Files(x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\TestPlatform\vstest.console.exe中找到了它。我将尝试一下,看看它是否有效。顺便说一句,我是通过使用搜索代理找到它的(我将在最后清理)-名称:搜索visual studio测试运行程序运行:|$var1=Get Childitem-Path“C:\Program Files(x86)\Microsoft visual studio”-筛选器“vstest.console.exe”-Recurse | select-ExpandProperty全名写主机“VS test runner:$var1”shell:powershell太好了,你解决了。你可以接受它作为答案。
- name: Functional Tests
run: |
$vsTestConsoleExe = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\Common7\\IDE\\Extensions\\TestPlatform\\vstest.console.exe"
$targetTestDll = "functionaltests\FeatureFlags.FunctionalTests.dll"
$testRunSettings = "/Settings:`"functionaltests\test.runsettings`" "
#Note that the `" is an escape character to quote strings, and the `& is needed to start the command
$command = "`& `"$vsTestConsoleExe`" `"$targetTestDll`" $testRunSettings "
Write-Host "$command"
Invoke-Expression $command
shell: powershell
- name: search for visual studio test runner
run: |
$var1 = Get-Childitem -Path "C:\Program Files (x86)\Microsoft Visual Studio" -Filter "vstest.console.exe" -Recurse | select -ExpandProperty FullName
Write-Host "VS test runner: $var1"
shell: powershell
- name: Add VSTest.console.exe to the PATH
uses: darenm/Setup-VSTest@v1
- name: Run functional tests
run: vstest.console.exe "functional-tests\<functional-tests-project-dll-name-here>.dll"