nunit-core team mailing list archive
-
nunit-core team
-
Mailing list archive
-
Message #01786
Re: [Bug 796880] Re: nunit-concole-x86 unable to load external library on which test suite depends on
Hi guys,
Here's the problem.
1) The Attributes assembly defines an enum TestCasePriority.
2) By virtue of inheriting from PropertyAttribute and passing the enum
to the base constructor, NUnit is required to understand TestCasePriority.
3) In order to understand TestCasePriority, the Attributes assembly would
have to be a part of NUnit. This is a normal outcome of the way information
is serialized in .NET.
The best solution, IMO, is to pass priority.ToString() to the base
constructor.
I did that and the test loaded and ran OK.
If this were part of an NUnit addin, then the attribute could be defined in
the
addin assembly and the enum would then be known to NUnit. If the end goal
is to have an addin that somehow acts on the priority value, then that would
be the easiest solution.
All that said, it still does not seem to be a bug.
Charlie
On Tue, Jun 14, 2011 at 11:03 AM, Matthias Hryniszak <
796880@xxxxxxxxxxxxxxxxxx> wrote:
> I've successfully reproduced your case and as such it make no sense that it
> doesn't work. All assemblies are properly referenced and reside in the
> proper output folder but still both nunit console and GUI runners complain
> about not being able to find them.
>
> @Charlie: I'd reopen this issue and work on it or at least search for a
> viable workaround for the time being. What do you think?
>
> Matthias.
>
> 2011/6/14 Krzysztof Oblucki <796880@xxxxxxxxxxxxxxxxxx>
>
> > @Matthias, I was hoping that my previous message would clarify what I'm
> > trying to accomplish but maybe I don't understand the question so let me
> > see if I can answer it another way.
> >
> > 1. Attributes.dll contains code that all of my test suites rely on,
> > without it my suites will not load as they are dependent on it. The
> > only way I can get nunit to start up properly is to to copy
> > Attributes.dll to the nunit binary directory. Attributes.dll then will
> > have to reside in both the nunit binary location to satisfy nunit and in
> > my test suites binary location to satisfy their dependency.
> >
> > 2. Attributes.dll contains attributes that we use to provide test
> > metadata such as descriptions, steps and expected results so that this
> > information can be then maintained in our automation plan and bug
> > tracking systems. The projects I uploaded illustrate the very basic
> > case of how a small part of the system works in terms of the
> > dependencies described in #1 above and which cause the behavior which
> > appears to be incorrect.
> >
> > @Charlie, I'm sorry if I was not clear about this being a workaround,
> > however, I was trying to convey a how rather than a why.
> >
> > --
> > You received this bug notification because you are a member of NUnit
> > Developers, which is subscribed to NUnit V2.
> > https://bugs.launchpad.net/bugs/796880
> >
> > Title:
> > nunit-concole-x86 unable to load external library on which test suite
> > depends on
> >
> > Status in NUnit V2 Test Framework:
> > Invalid
> >
> > Bug description:
> > Version: 2.5.10.11092
> > OS: Win7 64bit
> > Mode: 32bit
> >
> > Environment:
> > Solution with two projects:
> > 1. Consists of only one test which references attributes defined in
> > project 2
> > 2. Consists of attributes only
> >
> > Sample solution provided @ Solution\Tests\Tests.sln
> >
> > Instructions to reproduce:
> > 1. Compile solution
> > 2. Copy Attributes.dll to nunit binary directory
> > 3. Run nunit-console-x86.exe Tests.dll (from the Debug\Tests directory)
> >
> > Results:
> >
> >
> #########################################X86##############################
> >
> c:\Users\koblucki\Desktop\Tests\bin\Debug>c:\temp\Tools\NUnit\bin\net-2.0\nunit-console-x86.exe
> > /trace=Verbose /framework=4.0 Tests.dll
> > NUnit version 2.5.10.11092
> > Copyright (C) 2002-2009 Charlie Poole.
> > Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A.
> > Vorontsov.
> > Copyright (C) 2000-2002 Philip Craig.
> > All Rights Reserved.
> >
> > Runtime Environment -
> > OS Version: Microsoft Windows NT 6.1.7600.0
> > CLR Version: 2.0.50727.4959 ( Net 2.0 )
> >
> > ProcessModel: Default DomainUsage: Single
> > Execution Runtime: v4.0
> > Unhandled Exception:
> > System.Runtime.Serialization.SerializationException: Unable to find
> > assembly 'Attributes, Version=1.0.0.0, Culture=neutral,
> > PublicKeyToken=null'.
> >
> > Server stack trace:
> > at
> >
> System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
> > at
> >
> System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo
> > assemblyInfo, String name)
> > at
> > System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String
> > objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA,
> Object[]
> > typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader,
> Int32
> > objectId, BinaryAssemblyInfo assemblyInfo, SizedArray
> > assemIdToAssemblyTable)
> > at
> > System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String
> name,
> > String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
> > typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader,
> Int32
> > objectId, BinaryAssemblyInfo assemblyInfo, SizedArray
> > assemIdToAssemblyTable)
> > at
> >
> System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped
> > record)
> > at
> >
> System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum
> > binaryHeaderEnum)
> > at
> System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
> > at
> >
> System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler
> > handler, __BinaryParser serParser, Boolean fCheck, Boolean
> isCrossAppDomain,
> > IMethodCallMessage methodCallMessage)
> > at
> >
> System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream
> > serializationStream, HeaderHandler handler, Boolean fCheck, Boolean
> > isCrossAppDomain, IMethodCallMessage methodCallMessage)
> > at
> >
> System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryResponseMessage(Stream
> > inputStream, IMethodCallMessage reqMsg, Boolean bStrictBinding)
> > at
> >
> System.Runtime.Remoting.Channels.BinaryClientFormatterSink.DeserializeMessage(IMethodCallMessage
> > mcm, ITransportHeaders headers, Stream stream)
> > at
> >
> System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage
> > msg)
> >
> > Exception rethrown at [0]:
> > at
> > System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
> > reqMsg, IMessage retMsg)
> > at
> System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
> > msgData, Int32 type)
> > at NUnit.Core.TestRunner.get_Test()
> > at NUnit.Core.ProxyTestRunner.get_Test()
> > at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
> > at NUnit.ConsoleRunner.Runner.Main(String[] args)
> >
> > ##################################END
> > X86#################################
> >
> >
> c:\Users\koblucki\Desktop\Tests\bin\Debug>c:\temp\Tools\NUnit\bin\net-2.0\nunit-console.exe
> > /trace=Verbose /framework=4.0 Tests.dll
> > NUnit version 2.5.10.11092
> > Copyright (C) 2002-2009 Charlie Poole.
> > Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A.
> > Vorontsov.
> > Copyright (C) 2000-2002 Philip Craig.
> > All Rights Reserved.
> >
> > Runtime Environment -
> > OS Version: Microsoft Windows NT 6.1.7600.0
> > CLR Version: 4.0.30319.225 ( Net 4.0 )
> >
> > ProcessModel: Default DomainUsage: Single
> > Execution Runtime: v4.0
> > .Started Tests.UnitTests.RunTest
> > Finished Tests.UnitTests.RunTest on KOBLUCKI-WS1
> >
> > Tests run: 1, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.048
> seconds
> > Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0
> >
> > To manage notifications about this bug go to:
> > https://bugs.launchpad.net/nunitv2/+bug/796880/+subscriptions
> >
>
> --
> You received this bug notification because you are the registrant for
> NUnit V2.
> https://bugs.launchpad.net/bugs/796880
>
> Title:
> nunit-concole-x86 unable to load external library on which test suite
> depends on
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/nunitv2/+bug/796880/+subscriptions
>
--
You received this bug notification because you are a member of NUnit
Developers, which is subscribed to NUnit V2.
https://bugs.launchpad.net/bugs/796880
Title:
nunit-concole-x86 unable to load external library on which test suite
depends on
Status in NUnit V2 Test Framework:
Invalid
Bug description:
Version: 2.5.10.11092
OS: Win7 64bit
Mode: 32bit
Environment:
Solution with two projects:
1. Consists of only one test which references attributes defined in project 2
2. Consists of attributes only
Sample solution provided @ Solution\Tests\Tests.sln
Instructions to reproduce:
1. Compile solution
2. Copy Attributes.dll to nunit binary directory
3. Run nunit-console-x86.exe Tests.dll (from the Debug\Tests directory)
Results:
#########################################X86##############################
c:\Users\koblucki\Desktop\Tests\bin\Debug>c:\temp\Tools\NUnit\bin\net-2.0\nunit-console-x86.exe /trace=Verbose /framework=4.0 Tests.dll
NUnit version 2.5.10.11092
Copyright (C) 2002-2009 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.
Runtime Environment -
OS Version: Microsoft Windows NT 6.1.7600.0
CLR Version: 2.0.50727.4959 ( Net 2.0 )
ProcessModel: Default DomainUsage: Single
Execution Runtime: v4.0
Unhandled Exception:
System.Runtime.Serialization.SerializationException: Unable to find assembly 'Attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
Server stack trace:
at System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String name, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryResponseMessage(Stream inputStream, IMethodCallMessage reqMsg, Boolean bStrictBinding)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.DeserializeMessage(IMethodCallMessage mcm, ITransportHeaders headers, Stream stream)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at NUnit.Core.TestRunner.get_Test()
at NUnit.Core.ProxyTestRunner.get_Test()
at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
at NUnit.ConsoleRunner.Runner.Main(String[] args)
##################################END
X86#################################
c:\Users\koblucki\Desktop\Tests\bin\Debug>c:\temp\Tools\NUnit\bin\net-2.0\nunit-console.exe /trace=Verbose /framework=4.0 Tests.dll
NUnit version 2.5.10.11092
Copyright (C) 2002-2009 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.
Runtime Environment -
OS Version: Microsoft Windows NT 6.1.7600.0
CLR Version: 4.0.30319.225 ( Net 4.0 )
ProcessModel: Default DomainUsage: Single
Execution Runtime: v4.0
.Started Tests.UnitTests.RunTest
Finished Tests.UnitTests.RunTest on KOBLUCKI-WS1
Tests run: 1, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.048 seconds
Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0
To manage notifications about this bug go to:
https://bugs.launchpad.net/nunitv2/+bug/796880/+subscriptions
References