Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# requestedExecutionLevel的.NET单元测试_C#_.net_Unit Testing - Fatal编程技术网

C# requestedExecutionLevel的.NET单元测试

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”方法,我最终开发了以下内容。请注意,

需要在app.manifest中测试
。 我需要确保,该应用程序将有管理员权限。
需要用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中是否存在。但是我不知道怎么做。