运行 只有命令行指定的某些树冠测试
Running only certain canopy tests as specified on command line
假设我有以下简单的 Canopy 测试程序:
open System
open canopy.runner.classic
open canopy.configuration
open canopy.classic
canopy.configuration.chromeDir <- System.AppContext.BaseDirectory
start chrome
"test 1" &&& fun _ ->
...
"test 2" &&& fun _ ->
...
"test 3" &&& fun _ ->
...
[<EntryPoint>]
let main args =
run()
quit()
0
当我运行这个程序时:
dotnet run
三个测试都是运行。
假设默认情况下,我想要 运行 test 1
和 test 2
。但有时,我只想 运行 test 3
.
在 Canopy 中推荐的设置方式是什么?
传递命令行选项之类的东西就可以了:
dotnet run # Run the default tests
dotnet run -- test-3 # Run test 3
或者,我想我可以 test 3
在一个完整的独立项目中。但是,仅仅进行一个单独的测试似乎开销很大。
感谢任何建议!
我认为没有任何内置方法可以执行此操作,但手动管理似乎很容易:
let defaultTests () =
"test 1" &&& fun _ -> ()
"test 2" &&& fun _ -> ()
let test3 () =
"test 3" &&& fun _ -> ()
[<EntryPoint>]
let main (args : _[]) =
let arg =
if args.Length = 0 then "default"
else args.[0]
match arg with
| "default" -> defaultTests ()
| "test-3" -> test3 ()
| _ -> failwith $"Unknown arg: {arg}"
run()
quit()
0
诀窍是确保只有您想要 运行 的测试实际上在 运行 时得到定义。
假设我有以下简单的 Canopy 测试程序:
open System
open canopy.runner.classic
open canopy.configuration
open canopy.classic
canopy.configuration.chromeDir <- System.AppContext.BaseDirectory
start chrome
"test 1" &&& fun _ ->
...
"test 2" &&& fun _ ->
...
"test 3" &&& fun _ ->
...
[<EntryPoint>]
let main args =
run()
quit()
0
当我运行这个程序时:
dotnet run
三个测试都是运行。
假设默认情况下,我想要 运行 test 1
和 test 2
。但有时,我只想 运行 test 3
.
在 Canopy 中推荐的设置方式是什么?
传递命令行选项之类的东西就可以了:
dotnet run # Run the default tests
dotnet run -- test-3 # Run test 3
或者,我想我可以 test 3
在一个完整的独立项目中。但是,仅仅进行一个单独的测试似乎开销很大。
感谢任何建议!
我认为没有任何内置方法可以执行此操作,但手动管理似乎很容易:
let defaultTests () =
"test 1" &&& fun _ -> ()
"test 2" &&& fun _ -> ()
let test3 () =
"test 3" &&& fun _ -> ()
[<EntryPoint>]
let main (args : _[]) =
let arg =
if args.Length = 0 then "default"
else args.[0]
match arg with
| "default" -> defaultTests ()
| "test-3" -> test3 ()
| _ -> failwith $"Unknown arg: {arg}"
run()
quit()
0
诀窍是确保只有您想要 运行 的测试实际上在 运行 时得到定义。