nunit-core team mailing list archive
-
nunit-core team
-
Mailing list archive
-
Message #02304
[Bug 712156] Re: Tests cannot use AppDomain.SetPrincipalPolicy
** Branch linked: lp:nunit-3.0
--
You received this bug notification because you are a member of NUnit
Core Developers, which is the registrant for NUnit Framework.
https://bugs.launchpad.net/bugs/712156
Title:
Tests cannot use AppDomain.SetPrincipalPolicy
Status in NUnit Test Framework:
Fix Committed
Status in NUnit V2 Test Framework:
Fix Released
Bug description:
I have some unit tests that call AppDomain.SetPrinicipalPolicy (in
order to run tests using a Windows Principal).
Unfortunately, SetPrincipalPolicy doesn't work in tests run from the
NUnit 2.5.9 GUI runner. (It does work, just fine, from the NUnit
2.4.3 GUI Runner).
Here is a unit test to demonstrate the problem. The test passes (as
it should) in UNnit 2.4.3, but fails in 2.5.9:
[Test]
public void CanSetPrincipalPolicy()
{
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
Assert.That(Thread.CurrentPrincipal is WindowsPrincipal);
}
The problem appears to be the fact that NUnit's TestExecutionContext
is accessing Thread.CurrentPrincipal before the test runs. As per the
documentation for SetPrincipalPolicy, it _doesn't work_ if
Thread.CurrentPrincipal has been used _before_ SetPrincipalPolicy.
If this cannot be solved, then can a workaround pls be suggested. E.g.
- something in a nUnit config file to set principal policy, OR
- a documented way to execute SetPrincipalPolicy, in the same AppDomain as the tests, before TestExecutionContext touches Thread.CurrentPrincipal.
Is there any way to have code, in NUnit, that runs in the same app domain as the tests, but BEFORE
To manage notifications about this bug go to:
https://bugs.launchpad.net/nunit-3.0/+bug/712156/+subscriptions
References