Ich versuche Integrationstests zu meinem Projekt hinzuzufügen, aber ich erhalte den Fehler "Der Typ oder Namespace-Name 'Startup' konnte nicht gefunden werden" in meinen Tests. CS-Datei.Der Typ oder Namespacename 'Startup' konnte nicht gefunden werden
Ich habe zwei project.json Dateien, eine in meinem src Projekt und die andere in meinem Testprojekt.
Src project.json sieht wie folgt aus:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0-*",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.2",
"Swashbuckle": "6.0.0-beta902" },
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
// "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview2-final",
"Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final"},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"]}},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"debugType": "portable",
"xmlDoc": true},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}},
"publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"web.config",
"Dockerfile.debug",
"Dockerfile",
"docker-compose.debug.yml",
"docker-compose.yml"
]},
"scripts": {
"postpublish": [
"dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
]},
"tooling": {
"defaultNamespace": "api"}}
Das Test project.json wie folgt aussieht:
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"},
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-*",
"SrcService": {
"target": "project"
},
"Microsoft.AspNetCore.TestHost": "1.0.0"},
"testRunner": "xunit",
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
},
"imports": [
"dotnet5.4",
"portable-net45+win8"
]
}}}
Meine Tests.cs Klasse sieht wie folgt aus:
using System;
using Xunit;
using Microsoft.AspNetCore.TestHost;
using System.Net.Http;
using Microsoft.AspNetCore.Hosting;
namespace Tests
{
public class Tests
{
public TestServer server { get; }
public HttpClient client { get; }
public Tests(){
var builder = new WebHostBuilder().UseStartup<Startup>();
server = new TestServer(builder);
client = server.CreateClient();
}
[Fact]
public async void TestVisitRoot() {
var response = await client.GetAsync("/");
response.EnsureSuccessStatusCode();
}
}}
Weiß jemand, warum ich diesen Fehler bekomme? Danke im Voraus!
Wo ist Ihre 'Startup'-Klasse definiert? Möglicherweise müssen Sie eine Anweisung 'using' hinzufügen, die sich auf Ihren Namespace bezieht, oder den vollständigen Klassennamen mit dem Namespace' Your.Namespace.Startup' verwenden. – Ricky