上下文 - 手动运行测试
假设我有一个使用canopy测试的 C# ASP.NET Core Web 应用程序。我有一个名为Test
. 以下是我通常会如何手动运行我的树冠测试。
在一个 PowerShell 窗口中,我运行 Web 应用程序:
dotnet run
然后在另一个 PowerShell 窗口中运行 canopy 测试项目:
dotnet run --project .\Test\Test.fsproj
然后我在第一个 PowerShell 窗口中按 ctrl-c 来停止应用程序。
一步运行测试
我想要一种从命令行一步完成所有这些的方法。所以我有一个 PowerShell 函数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 用户通常会做什么来测试他们的应用程序?你只是采取“运行应用程序”然后“运行测试”的手动方法吗?你有一些类似于上面的自动化方法吗?有没有更好的常用方法?
感谢您的任何建议!