SuperAPI AI 工具集

vvvv-testing

测试与质量

查看项目

更新于 10-16 01:50

技能介绍

用途:为 vvvv gamma 包、库与 C# 节点编写并运行自动化测试,既支持面向包/库作者的 CI 集成测试,也支持快速的一次性验证与调试。

两种方式:一是 VL.TestFramework(NUnit),适用于包/库作者与 CI 集成,需创建引用 VL.TestFramework 的 .csproj 测试项目;二是代理测试工作流,适用于快速验证与临时调试,创建测试 .vl 补丁、启动 vvvv 并检查结果。

主要能力:TestEnvironmentLoader.Load(assemblyPath, searchPaths) 创建测试环境,每个测试类一个(开销较大);testEnvironment.LoadAndTestAsync(filePath) 加载 .vl 文档并检查编译错误;传入 runEntryPoint: true 时还会执行入口点(Create + Update + Dispose);GetPackages() 发现所有包及其源/帮助/测试文件;Host.LoadAndCompileAsync(filePath) 仅加载编译不运行,便于自定义断言;Host.GetTargetCompilationAsync(filePath) 获取 C# 编译结果以供检查。

测试发现约定:自动发现包目录下 tests/ 文件夹中的 .vl 测试文档,help/ 文件夹中的帮助补丁仅测编译,测试文档中以 Test 或 Tests 结尾的 Process/operation 节点会被单独编译执行。

补丁内断言节点位于 VL.Lib.Basics.Test.TestNodes,包括 Assert、AreEqual、AreNotEqual、IsNotNull、AreSequenceEqual、AssertElementHasError、AssertElementHasNoError,失败时抛出 AssertionException 由测试运行器捕获上报。

运行方式:dotnet test;dotnet test --filter 指定测试;Nuke 构建系统可用 ./build.ps1 --target Test。手工验证可用 vvvv.exe --stoppedonstartup --debug --log -o "path/to/MyTest.vl",并检查退出码、%USERPROFILE%\Documents\vvvv\gamma\vvvv.log 中的错误与 AssertionException。

CI:Nuke 的 Test 目标使用 DotNetTest;GitHub Actions 示例为 dotnet test --configuration Release --logger "trx"。

限制与注意事项:OneTimeSetUp 中不要使用 async Task(NUnit 同步上下文问题);每个测试类只建一个 TestEnvironment;测试后文档会卸载以释放内存;默认 preCompilePackages: false 迭代更快,设为 true 可做生产保真测试。资料未提供具体收费、价格与平台支持信息。