[英]How to unit test a C# library that runs PowerShell scripts
我有一个 C# 库,它运行几个 PowerShell 脚本来操作 Windows 管理程序。 (例如打开和关闭VM,使用vhds创建VM,获取开关等)很难模拟环境并控制脚本的output。 用于检查/验证内容的脚本可能更容易,但用于操作目的的脚本可能会让人头疼,因为这些方法中的大多数可能是不可逆的。
我为 PowerShell 找到了一个很好的单元测试框架 Pester。 但是我的代码包含大量的 C# 代码。 有什么好的方法可以优雅地处理这个单元测试问题吗?
提前致谢!
这里有几点需要说明:
Powershell
和 VM 等)交互时,根据定义,它是一个集成测试。 您可以尝试在C#
中的单独函数中提取少量代码并对它们进行单元测试,从而确定这些工作并在Powershell
中执行相同的操作(使用 Pester)。 但真正的问题是; 你想达到什么目的? 我假设您想确保您的应用程序现在可以工作并在未来继续工作(不会倒退),在这种情况下,您可以更多地研究一种更端到端的测试方法。
C#
(如xUnit
)中设置测试,表示明确的Setup
和Teardown
阶段,分别在测试前设置所需的一切并在测试后清理(请记住,测试可能默认并行运行,并且这不 go 与文件系统上的共享资源等)这避免了仅仅因为您想对其进行单元测试而必须重写代码。 另一方面,提取纯单元可以更轻松地测试这些特定单元。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.