【发布时间】:2010-12-14 23:30:55
【问题描述】:
需要在 app.manifest 中测试<requestedExecutionLevel level="highestAvailable" uiAccess="false" />。
我需要确定,该应用程序将具有管理员权限。
需要用 C# .NET 编写的 NUnit 场景。
【问题讨论】:
标签: c# .net unit-testing
需要在 app.manifest 中测试<requestedExecutionLevel level="highestAvailable" uiAccess="false" />。
我需要确定,该应用程序将具有管理员权限。
需要用 C# .NET 编写的 NUnit 场景。
【问题讨论】:
标签: c# .net unit-testing
需要完全按照您的要求进行操作,鉴于您的“仅读取 xml”方法,我最终开发了以下内容。请注意,为了使其正常工作,我还必须更改我的 testsettings 文件以手动部署 app.manifest 文件,以便可以读取。 p>
public TestContext TestContext { get; set; }
[TestMethod]
public void Proper_Permissions_Set_In_app_manifest()
{
// Arrange
var expected = "requireAdministrator";
using (StreamReader reader = new StreamReader(Path.Combine(TestContext.TestDeploymentDir, "app.manifest")))
{
var doc = XDocument.Load(reader.BaseStream);
var node = doc.Descendants("{urn:schemas-microsoft-com:asm.v3}requestedExecutionLevel").First();
var attribute = node.Attribute("level");
// Act
var actual = attribute.Value;
// Assert
Assert.AreEqual(expected, actual);
}
}
我希望这对其他人有帮助...
【讨论】:
抱歉,您无法使用 NUnit 执行此类测试。
NUnit 对类而不是可执行文件执行单元测试。尽管在您的情况下没有什么要测试的。您在 app.manifest 中的声明授予应用程序只能在 UAC 处于活动状态时以最高权限执行。
如果您不信任我,请自己尝试。在不同级别设置 UAC (Windows 7) 或切换它 (Vista) 看看!
【讨论】: