您可以将 Windows PowerShell 看成是对旧的 cmd.exe 命令外壳程序以及相关 .bat 文件的一个重大升级。虽然 Windows PowerShell 是为系统管理任务设计的,但它的某些功能也使之完全适用于轻量级测试任务。本月,我将以 Windows PowerShell 命令行和轻量级 Windows PowerShell 脚本两种方式对基于 Microsoft .NET Framework 的代码模块进行测试。
请看图 1 和图 2 中所示的屏幕截图。图 1 显示了对名为 MyPointLib 的 .NET DLL 模块执行专门的交互式测试的 Windows PowerShell。Windows PowerShell 提供了用于创建对象以及将库动态加载到正在运行的 shell 进程的语法。我将加载所测试的 MyPointLib 库,实例化一个 Point 对象,探测该对象的可用方法,调用 Distance 方法,并验证正确的结果。
图 1 在命令行上使用 Windows PowerShell 进行的专门测试
图 2 显示了 Windows PowerShell 脚本的输出结果。在此,您会看到我执行的是传统的模块测试 - 实例化 MyPointLib 库的 Point 对象,调用 Distance 方法的实例版本和静态版本,并为确定测试用例的“pass/fail”(通过/失败)结果对实际结果和预期结果进行比较。
图 2 使用脚本进行的传统模块测试
在本专栏中,我首先介绍所测试的类库,然后介绍图 1 中所示的 Windows PowerShell 命令。我还指出了用于对基于 .NET 的模块进行交互式测试的 Windows PowerShell 方法。之后我对图 2 中输出结果的生成脚本进行了说明。下载部分提供了测试工具的源代码以及所测试的库。
接下去我探讨了如何对本文所示的方法进行举一反三,以满足您自己的测试需要,然后讨论了哪些情况下 Windows PowerShell 比起其他方案(如 NUnit 之类的单元测试框架)来更合适。我相信您会发现 Windows PowerShell 是对您软件测试工具的一个很好的补充。