【问题标题】:.NET Unit test for requestedExecutionLevel请求执行级别的 .NET 单元测试
【发布时间】:2010-12-14 23:30:55
【问题描述】:

需要在 app.manifest 中测试<requestedExecutionLevel level="highestAvailable" uiAccess="false" />。 我需要确定,该应用程序将具有管理员权限。 需要用 C# .NET 编写的 NUnit 场景。

【问题讨论】:

    标签: c# .net unit-testing


    【解决方案1】:

    需要完全按照您的要求进行操作,鉴于您的“仅读取 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);
            }
        }
    

    我希望这对其他人有帮助...

    【讨论】:

      【解决方案2】:

      抱歉,您无法使用 NUnit 执行此类测试。

      NUnit 对类而不是可执行文件执行单元测试。尽管在您的情况下没有什么要测试的。您在 app.manifest 中的声明授予应用程序只能在 UAC 处于活动状态时以最高权限执行。

      如果您不信任我,请自己尝试。在不同级别设置 UAC (Windows 7) 或切换它 (Vista) 看看!

      【讨论】:

      • 是的,你是对的,但你误解了我的意思。我只需要解析 app.manifest XML 并找出该 XML 中存在 。但我不知道怎么做。
      猜你喜欢
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 2012-06-16
      相关资源
      最近更新 更多