- 背景**
我有一个PowerShell模块,我在这里开始编写测试。每个函数都存储在自己的同名文件中(例如,function MyFunction
存储在名为MyFunction.ps1
的文件中)。类似地,测试存储在名为MyFunction.Tests.ps1
的文件中。结构如下所示。
Source\
Public\
MyFunction.ps1
Private\
Tests\
MyFunction.Tests.ps1
为了加快模块的加载速度,在构建期间,所有函数都被复制到.psm1
文件中。
- 问题**
测试(包含代码覆盖率、集成、回归等的单元测试)应该针对单个.ps1
文件中的函数运行还是针对整个.psm1
文件运行?如果您能提供关于每种方法的优缺点的信息,我们将不胜感激。
1条答案
按热度按时间pqwbnv8z1#
在构建期间,所有函数都被复制到
.psm1
文件中。一般来说,您应该始终测试 * 在运行时实际使用 * 的代码,这意味着您应该针对
.psm1
文件进行测试。这可以防止隐藏以下潜在问题,例如:
.ps1
文件(如果可行的话),那么当将各个文件放在单个.psm1
文件中时,可能会错过各个文件中的代码之间潜在的(不必要的)交互;此外,.psm1
文件的行为与.ps1
文件不同。.psm1
文件的构建脚本中存在缺陷。