【发布时间】:2014-01-14 10:55:29
【问题描述】:
我正在测试一个小型实用程序。它的行为会有所不同,具体取决于它是否以管理权限运行。因此,我的测试框架需要在有和没有管理员权限的情况下调用程序,以检查它的行为是否正确。
测试框架是用 C# 编写的。我们的 CI 服务器将在每天午夜运行测试,因此弹出访问确认或类似内容是不好的;不会有人在那里按下按钮或输入凭据。如果可能,我希望避免存储管理员密码。
我从哪里开始?看起来ProcessStartInfo 可以使用用户名、域和密码——但这需要将管理员密码编译到测试框架中。 (就像 that 可以在不止一台 PC 上运行!)我还看到了一些关于 WindowsIdentity 和模拟的答案 - 但这似乎是为了更改 的用户 ID当前进程,而不是我试图调用的外部进程。
【问题讨论】:
-
您可以将密码存储在 CI 工具中,然后将其传递给测试并在 ProcessStartInfo 中使用,例如在 TeamCity 7 中有 password parameter