2010-12-14 22 views
1

app.manifestの<requestedExecutionLevel level="highestAvailable" uiAccess="false" />をテストする必要があります。 私はそのアプリに管理者権限があることを確認する必要があります。 C#.NETで記述されたNUnitシナリオが必要です。requestedExecutionLevelの.NETユニットテスト

答えて

2

あなたがしたことを正確に実行する必要がありました私は最終的に次の "just read the 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); 
     } 
    } 

私ははい、あなたが正しいですが、あなたは私をmissunderstud

+0

うわー、ありがとう!本当に役に立ちました。 – Simon

1

申し訳ありませんが、NUnitでこのようなテストを実行することはできません。

NUnitは実行可能ファイルではなく、クラスに対して単体テストを実行します。あなたの場合はテストするものはありませんが。 app.manifestのステートメントは、UACが有効な最高の特権でのみアプリケーションを実行できることを許可します。

私を信頼しない場合は、自分で試してみてください。 UACをさまざまなレベル(Windows 7)に設定するか、それを切り替えます(Vista)。

+0

...これは他の誰かに役立ちます願っています。私はapp.manifest XMLを解析し、がそのXMLに存在することを知るだけでいいです。しかし、私は方法を知らない。 – Simon

関連する問題