[英]Is there a reliable Command Line or Powershell step format to run RSpec tests on TeamCity?
[英]Testing with Canopy in one command line step
假设我有一个 C# ASP.NET Core web 应用程序,我正在使用canopy进行测试。 我有一个名为Test
的树冠项目。 以下是我通常如何手动运行我的树冠测试的 go。
在一个 PowerShell window 我运行 web 应用程序:
dotnet run
然后在另一个 PowerShell window 我运行树冠测试项目:
dotnet run --project .\Test\Test.fsproj
然后我在第一个 PowerShell window 中按 ctrl-c 来停止应用程序。
我想要一种从命令行一步完成所有这些的方法。 所以我有一个 PowerShell function test-app
:
function test-app()
{
reset-database
$proc = run_app
run_canopy
Stop-Process $proc.Id
}
reset-database
就是这样做的。 它重置数据库,以便测试在干净的环境中运行:
function reset-database ()
{
dotnet ef database drop -f
dotnet ef database update
}
run_app
负责运行应用程序:
function run_app ()
{
$items = 'dotnet run' -split ' '
Start-Process $items[0] $items[1..100] -PassThru
}
它返回一个存储在$proc
中的进程:
$proc = run_app
run_canopy
执行以下操作:
Start-Job
启动树冠项目。 作业存储在$job_canopy
中。$job_canopy.State
完成来等待树冠Completed
function run_canopy ()
{
$dir = (Resolve-Path .).Path
$code = {
param($dir)
cd $dir
dotnet run --project .\Test\Test.fsproj
}
$job_canopy = Start-Job -ScriptBlock $code -ArgumentList $dir
while ($job_canopy.State -ne 'Completed')
{
Start-Sleep -Seconds 2
}
Receive-Job $job_canopy
}
最后,应用程序停止:
Stop-Process $proc.Id
到目前为止,这一直运作良好。 如果我想测试 web 应用程序,我所要做的就是运行:
test-app
我的问题是,canopy 用户通常会做什么来测试他们的应用程序? 你只是采取“运行应用程序”然后“运行测试”的手动方法吗? 你有一些类似于上面的自动化方法吗? 有没有更好的常用方法?
感谢您的任何建议!
您的方法非常聪明,我喜欢它用于本地开发,您可以使用单个命令运行应用程序和测试。 但是,对于 CI/CD 管道,我建议将其分成单独的步骤 - Canopy 本身就是一个应用程序,应该这样对待:
天篷也是如此
在具有分离职责(开发、质量保证)的大型团队中工作时,测试应用程序和 Canopy 之间的生命周期/部署过程分离可以帮助您。 但是为了快速的本地开发,您的方法没有错。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.