Search Unity

Bug New Test Runner doesn't show tests in pre-compiled dlls

Discussion in 'Testing & Automation' started by Xtro, Aug 20, 2017.

  1. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    610
    Hi,

    Basically, I am looking for support on the new Test Runner. I couldn't find a Unity bitbucket repository for the new test runner. Who is responsible for its support? Is this the right place to ask support about it?

    Here is my problem:

    I'm trying to want my pre-compiled nunit test method to show up and work on the new test runner.

    I don't want to store my tests in the regular Assembly-CSharp.dll because the classes I need to test are also in pre-compiled dlls. I am very familiar and experienced on working with pre-compiled dlls in Unity.

    When I successfully compile my test dll and import it into Unity, Test Runner window doesn't show my test dll nor test method in it.

    It would be awful if the new test runner doesn't support pre-compiled test dlls.

    I tried Slack #testing channel but it looks inactive.
    Can anyone provide me a contact of someone working on the new Test Runner project please?
     
  2. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    610
    More on this:

    When I add [TestFixture] attribute onto my test class in test dll, I get an error from Unity when trying to import the test dll.



    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

    at Mono.Cecil.BaseAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference name, Mono.Cecil.ReaderParameters parameters) [0x000f7] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.BaseAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference name) [0x00007] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.DefaultAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference name) [0x00025] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.MetadataResolver.Resolve (Mono.Cecil.TypeReference type) [0x00040] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.ModuleDefinition.Resolve (Mono.Cecil.TypeReference type) [0x00006] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.TypeReference.Resolve () [0x00006] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.Mixin.CheckedResolve (Mono.Cecil.TypeReference self) [0x00000] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.SignatureReader.ReadCustomAttributeEnum (Mono.Cecil.TypeReference enum_type) [0x00000] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.SignatureReader.ReadCustomAttributeElementValue (Mono.Cecil.TypeReference type) [0x0002f] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.SignatureReader.ReadCustomAttributeElement (Mono.Cecil.TypeReference type) [0x00015] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.SignatureReader.ReadCustomAttributeFixedArgument (Mono.Cecil.TypeReference type) [0x00015] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.SignatureReader.ReadCustomAttributeConstructorArguments (Mono.Cecil.CustomAttribute attribute, Mono.Collections.Generic.Collection`1[T] parameters) [0x0002e] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.MetadataReader.ReadCustomAttributeSignature (Mono.Cecil.CustomAttribute attribute) [0x0003c] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.CustomAttribute.<Resolve>b__35_0 (Mono.Cecil.CustomAttribute attribute, Mono.Cecil.MetadataReader reader) [0x00000] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.ModuleDefinition.Read[TItem,TRet] (TItem item, System.Func`3[T1,T2,TResult] read) [0x00029] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.CustomAttribute.Resolve () [0x00017] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Mono.Cecil.CustomAttribute.get_ConstructorArguments () [0x00000] in <aa9db9129f9d4243a99d025330e76d74>:0

    at Unity.Cecil.Visitor.Visitor.Visit (Mono.Cecil.CustomAttribute customAttribute, Unity.Cecil.Visitor.Context context) [0x0003e] in <a2988452bd13497f8d7a464ae6072554>:0

    at Unity.Cecil.Visitor.Visitor.Visit (Mono.Cecil.MethodDefinition methodDefinition, Unity.Cecil.Visitor.Context context) [0x00037] in <a2988452bd13497f8d7a464ae6072554>:0

    at APIUpdater.Framework.Configuration.ConfigurationCollector.Visit (Mono.Cecil.MethodDefinition methodDefinition, Unity.Cecil.Visitor.Context context) [0x00001] in <a2988452bd13497f8d7a464ae6072554>:0

    at Unity.Cecil.Visitor.Visitor.Visit (Mono.Cecil.TypeDefinition typeDefinition, Unity.Cecil.Visitor.Context context) [0x001b1] in <a2988452bd13497f8d7a464ae6072554>:0

    at APIUpdater.Framework.Configuration.ConfigurationCollector.Visit (Mono.Cecil.TypeDefinition typeDefinition, Unity.Cecil.Visitor.Context context) [0x00001] in <a2988452bd13497f8d7a464ae6072554>:0

    at Unity.Cecil.Visitor.Visitor.Visit (Mono.Cecil.ModuleDefinition moduleDefinition, Unity.Cecil.Visitor.Context context) [0x00024] in <a2988452bd13497f8d7a464ae6072554>:0

    at Unity.Cecil.Visitor.Visitor.Visit (Mono.Cecil.AssemblyDefinition assemblyDefinition, Unity.Cecil.Visitor.Context context) [0x00024] in <a2988452bd13497f8d7a464ae6072554>:0

    at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)

    at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in <a90417619fac49d5924050304d0280bb>:0

    --- End of inner exception stack trace ---

    at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00053] in <a90417619fac49d5924050304d0280bb>:0

    at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <a90417619fac49d5924050304d0280bb>:0

    at Unity.Cecil.Visitor.Visitor.Visit[T] (T node, Unity.Cecil.Visitor.Context context) [0x00038] in <a2988452bd13497f8d7a464ae6072554>:0

    at Unity.Cecil.Visitor.Extensions.DoAccept[T] (T definition, Unity.Cecil.Visitor.Visitor visitor) [0x0001e] in <a2988452bd13497f8d7a464ae6072554>:0

    at Unity.Cecil.Visitor.Extensions.Accept (Mono.Cecil.AssemblyDefinition assemblyDefinition, Unity.Cecil.Visitor.Visitor visitor) [0x00001] in <a2988452bd13497f8d7a464ae6072554>:0

    at APIUpdater.Framework.Configuration.ObsoleteAttributeBasedConfigurationFactory.CollectConfigurationFrom (Mono.Cecil.AssemblyDefinition assembly) [0x0000e] in <a2988452bd13497f8d7a464ae6072554>:0

    at APIUpdater.Framework.Configuration.ObsoleteAttributeBasedConfigurationFactory..ctor (System.String pathToAssemblyWithAttr, System.String[] references) [0x00084] in <a2988452bd13497f8d7a464ae6072554>:0

    at APIUpdater.Framework.Util.IEnumerableExtensions.ComputeConfigurationProvider (System.Collections.Generic.IEnumerable`1[T] assemblyPaths, APIUpdater.Framework.Configuration.IConfigurationProvider provider) [0x00017] in <a2988452bd13497f8d7a464ae6072554>:0

    at AssemblyUpdater.Application.Program.ConfigurationProviderFrom (System.Collections.Generic.IEnumerable`1[T] configurationAssemblies) [0x00020] in <fc8204afd8f44ddfb3725526ef3671e2>:0

    at AssemblyUpdater.Application.Program.CheckForObsoleteAPIUsage (AssemblyUpdater.Application.CommandLineSpec config) [0x0007a] in <fc8204afd8f44ddfb3725526ef3671e2>:0

    at AssemblyUpdater.Application.Program.Main (System.String[] args) [0x00057] in <fc8204afd8f44ddfb3725526ef3671e2>:0
    UnityEditor.Scripting.APIUpdaterHelper:DoesAssemblyRequireUpgrade(String)
     
  3. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,659
    We're working on this for 2017.3.

    [Edit: though looking at the top of your error list, it looks like possibly you compiled your DLL against the .NET 4 runtime - by default Unity requires that you use the .NET 3.5 runtime].
     
  4. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    610
    Yes. I am using the experimental .NET 4.
    Waited for it for ages. Can't go back :)
     
  5. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    610
    Still not working in 2017.3b1.

    Any update?
     
  6. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    610
    Any estimated version this to be fixed? a beta version maybe?
     
  7. Joseph-Ferano

    Joseph-Ferano

    Joined:
    Jul 18, 2008
    Posts:
    165
    I'm having a similar problem in 2017.3f1 on Linux but only with PlayMode Tests. Editor Mode seem to run fine.