2016-10-27 2 views
1

Wenn das Gerät laufen Tests gegen meine Asp.Net Core-Web-Anwendung (.NET Framework) 4.6 erhalte ich folgende Fehlermeldung:Fehler bei dem Ausführen von Unit-Tests auf Asp.Net Core-Web-Anwendung (.NET Framework) 4.6

Test Name: Test1 
Test FullName: UnitTest.Class1.Test1 
Test Outcome: Failed 
Test Duration: 0:00:00.015 

Result StackTrace: at UnitTest.Class1.Test1() 
Result Message: System.BadImageFormatException : Could not load file or 
assembly 'MyWebApplication, Version=1.0.0.0, Culture=neutral, 
PublicKeyToken=null' or one of its dependencies. An attempt was made to 
load a program with an incorrect format. 

Meine Komponententestanwendung ist eine .NET Core Library für .NET Framework 4.6. Hier

ist die project.json für meine Asp.Net Core-Web-Anwendung (.NET Framework) 4.6:

{ 
    "dependencies": { 

    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Configuration": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.DependencyInjection": "1.0.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.0", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0" 
    }, 

    "tools": { 
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2- final" 
    }, 

    "frameworks": { 
    "net46": { 
     "dependencies": { 
     "MyWebApplication": { 
      "target": "project" 
     } 
     }, 
     "frameworkAssemblies": { 
     } 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "web.config", 
     "Views", 
     "appsettings.json" 
    ] 
    }, 

    "scripts": { 
"postpublish": [ "dotnet publish-iis --publish-folder  %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

Hier ist die project.json für mein Unit-Test-Projekt, das ein .NET-Core Klassenbibliothek Targeting .NET Framework 4.6:

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
     "MyWebApplication": "1.0.0-*", 
     "NUnit": "3.5.0", 
     "NUnit.Runners": "2.6.4", 
     "NUnit3TestAdapter": "3.5.0" 
    }, 

    "frameworks": { 
     "net46": { 
     } 
    }, 

    "testRunner": "NUnit" 
} 

Hier ist der gesamte Test ich bin mit:

using MyWebApplication.Controllers; 
using NUnit.Framework; 

namespace UnitTest 
{ 
    [TestFixture] 
    public class Class1 
    { 
     [Test] 
     public void Test1() 
     { 
      Dummy dummy = new Dummy(); 
     } 
    } 
} 

Hier wird die ganze Klasse ist:

namespace MyWebApplication.Controllers 
{ 
    public class Dummy 
    { 
     public Dummy() 
     { 

     } 
    } 
} 

Ein letztes Detail, meine Asp.Net Core-Web-Anwendung (.NET Framework) 4.6 Referenzen 2 andere .NET-Klassenbibliothek Projekte, 1 ist ein Entity Framework (5.0) Projekt, das Referenzen .NET Framework 4.5 und die zweite ist eine Klassenbibliothek, die .NET Framework 4.6 zielt.

Antwort

0

fand ich die Antwort!

habe ich meine Unit-Tests Projekt als .NET-Core-dll, dann die .netappcore Bezugsrahmen von der project.json kommentiert und ersetzt es mit net46:

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
     "NETStandard.Library": "1.6.0", 
     "NUnit": "3.5.0", 
     "NUnit.Runners": "3.5.0", 
     "NUnit3TestAdapter": "3.5.1", 
     "xunit": "2.1.0", 
     "dotnet-test-xunit": "1.0.0-rc2-build10025", 
     "xunit.runner.visualstudio": "2.1.0", 
     "xunit.runners": "2.0.0", 
     "FakeItEasy": "2.3.1", 
     "MyWebApplication": "1.0.0-*", 
     "Moq": "4.5.28", 
     "Microsoft.Framework.Configuration.Json": "1.0.0-beta8" 
    }, 

    "frameworks": { 
     "net46": { 
      "dependencies": { 
       "AnotherProject.UnitTest": { 
        "target": "project" 
       } 
      } 
     } 
    }, 
    "testRunner": "xunit" 
} 

ich dann installiert xunit.

Dann hatte ich mit MyWebApplication alle Abhängigkeiten neu zu installieren. Einer davon war 1.0.1, obwohl im Paketordner 1.0.0 stand.

Einmal waren diese Dinge getan, konnte ich Unit-Tests beginnen.

Verwandte Themen