C# requestedExecutionLevel的.NET单元测试
需要在app.manifest中测试C# requestedExecutionLevel的.NET单元测试,c#,.net,unit-testing,C#,.net,Unit Testing,需要在app.manifest中测试。 我需要确保,该应用程序将有管理员权限。 需要用C#.NET编写NUnit场景。对不起,您不能用NUnit执行这样的测试 NUnit对类而不是可执行文件执行单元测试。虽然在你的情况下没有什么可测试的。您在app.manifest中的语句授予应用程序只能在UAC处于活动状态时以最高权限执行 如果你不相信我,你自己试试看。在不同级别设置UAC(Windows 7)或切换UAC(Vista),然后查看 鉴于您的“只需阅读xml”方法,我最终开发了以下内容。请注意,
。
我需要确保,该应用程序将有管理员权限。
需要用C#.NET编写NUnit场景。对不起,您不能用NUnit执行这样的测试 NUnit对类而不是可执行文件执行单元测试。虽然在你的情况下没有什么可测试的。您在app.manifest中的语句授予应用程序只能在UAC处于活动状态时以最高权限执行
如果你不相信我,你自己试试看。在不同级别设置UAC(Windows 7)或切换UAC(Vista),然后查看 鉴于您的“只需阅读xml”方法,我最终开发了以下内容。请注意,为了使其正常工作,我还必须将我的testsettings文件更改为手动部署app.manifest文件,以便在那里读取
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);
}
}
我希望这能帮助其他人……是的,你说得对,但你错当了我的替补。我只需要解析app.manifest XML并找出该XML中是否存在。但是我不知道怎么做。