是否可以将测试参数排除在 NUnit 3 测试结果 XML 之外?
Is it possible to exclude the test parameters from being included in the NUnit 3 test result XML?
我们使用 NUnit 3 运行 部署冒烟测试,参数从 VCS 读取。它是这样工作的:
- Powershell 从 VCS 读取参数并编写 NUnit 3 控制台命令行。
- NUnit3 控制台 运行 测试。
有些参数是密码。
问题是最终测试结果XML列出了所有测试参数,包括密码。
是否可以通过某种方式指示 NUni3 避免在测试结果中包含测试参数XML?
没有这样的功能,因为假设您不会传递任何需要安全的东西。
这是为什么?想象一下,有一个像 --secret:password=XXX
这样的参数,它像参数一样工作,但没有显示在结果中。在那种情况下,您的密码在您的脚本中仍然是明确的,任何人都可以阅读。此外,它可以用于任何测试,可以用它做它想做的事,比如把它写在某个地方。
更好的方法是使用某种加密,这样您只传递一个密钥,只有知道如何解密它的帐户或程序才能使用该密钥。有多种方法可以做到这一点,具体取决于您 运行 测试的方式。我相信你会发现 VCS 有一种加密密码的方法,你也许可以使用。
无论如何,如果没有这样的 "secret" 选项,您可以避免公开密码的唯一方法是通过编写引擎结果编写器扩展来创建您自己的输出格式。您的扩展代码将接收整个 nunit 3 输出文档,您可以修改它以在保存文件之前删除密码。
我们使用 NUnit 3 运行 部署冒烟测试,参数从 VCS 读取。它是这样工作的:
- Powershell 从 VCS 读取参数并编写 NUnit 3 控制台命令行。
- NUnit3 控制台 运行 测试。
有些参数是密码。
问题是最终测试结果XML列出了所有测试参数,包括密码。
是否可以通过某种方式指示 NUni3 避免在测试结果中包含测试参数XML?
没有这样的功能,因为假设您不会传递任何需要安全的东西。
这是为什么?想象一下,有一个像 --secret:password=XXX
这样的参数,它像参数一样工作,但没有显示在结果中。在那种情况下,您的密码在您的脚本中仍然是明确的,任何人都可以阅读。此外,它可以用于任何测试,可以用它做它想做的事,比如把它写在某个地方。
更好的方法是使用某种加密,这样您只传递一个密钥,只有知道如何解密它的帐户或程序才能使用该密钥。有多种方法可以做到这一点,具体取决于您 运行 测试的方式。我相信你会发现 VCS 有一种加密密码的方法,你也许可以使用。
无论如何,如果没有这样的 "secret" 选项,您可以避免公开密码的唯一方法是通过编写引擎结果编写器扩展来创建您自己的输出格式。您的扩展代码将接收整个 nunit 3 输出文档,您可以修改它以在保存文件之前删除密码。