Ich muss Verbindungszeichenfolgen und andere Einstellungen in meinen .NET Core 2.0-Integrationstests speichern (es handelt sich also um ein Testprojekt mit xUnit). Wie kann ich dies unter Berücksichtigung der lokal und in VSTS ausgeführten Tests sicher tun? Idealerweise benötige ich diese Einstellungen für die lokale Umgebung getrennt und auf VSTS ausgeführt..net Core 2.0 Tests - wie Einstellungen in Testprojekten gespeichert werden?
Antwort
Sie können mehrere Konfigurationsdateien, wie appsettings.json, appsettings.dev.json, appsettings.test.json, fügen Sie dann stellen Sie den dev Wert für relevante Umgebungsvariable und setzen Test Wert für verwandte Variable des Builds.
Danach den Wert in appsettings.test.json Datei durch Token Replace Aufgabe
Einfache Schritte ersetzen:
- Installieren Microsoft.Extensions.Configuration.Json package zu Ihrem xUnit Testprojekt
- appsettings.json hinzufügen, appsettings.dev.json und appsettings.test.json Konfigurationsdateien zum Projekt
appsettings.json:
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
"OtherSettings": {
"UserName": "name1",
"Pass": "pass1"
}
}
appsettings.dev.json:
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=dev;Trusted_Connection=True;"
},
"OtherSettings": {
"UserName": "devname1",
"Pass": "pass1"
}
}
appsettings.test.json:
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=#{testDev}#;Trusted_Connection=True;"
},
"OtherSettings": {
"UserName": "#{testName}#",
"Pass": "pass1"
}
}
- Set Kopieren nach Ausgabe Verzeichnis Eigenschaft dieser Dateien zu Kopieren, wenn neuere. 4: Einfacher Testcode
:
[Fact]
public void Test1()
{
var envVariable = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
Console.WriteLine($"env: {envVariable}");
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{envVariable}.json", optional: true)
.Build();
var conn = config.GetConnectionString("BloggingDatabase");
var otherSettings = config["OtherSettings:UserName"];
Console.WriteLine(conn);
Console.WriteLine(otherSettings);
}
- hinzufügen ASPNETCORE_ENVIRONMENT (Wert: test), testDev und Testname Variablen Definition zu bauen Sie können auf das Schlosssymbol klicken, um den Variablentyp in das geheime zu ändern.
- hinzufügen Ersetzen Aufgabe Tokens vor Build-Task (Target-Dateien:
**\appsettings.test.json
)
Ich habe es gerade versucht. Ich kann ASPNETCORE_ENVIRONMENT nicht erhalten. Es ist immer leer, wenn ich Tests lokal ausführen :(Wie stellen Sie ASPNETCORE_ENVIRONMENT für Test-Projekt (xUnit) in VS2017? – alvipeo
Setzen Sie einfach Umgebungsvariable in Ihrem Rechner. –
das könnte funktionieren, aber es ist sehr unbequem. – alvipeo
- 1. SpecFlow mit xUnit Net Core 2.0-Testprojekt
- 2. .NET Core 2.0 xUnit-Tests wurden in VSTS nicht erkannt
- 3. Codeabdeckung in .Net Core 2.0
- 4. Asp.Net Core 2.0 Xunit Tests
- 5. .NET Core 2.0 Leistung
- 6. statischer Variable für Tests in verschiedenen Testprojekten
- 7. Protobuf-net-Port zu .net-Core 2.0
- 8. .NET Core 2.0 keine Microsoft.Extensions
- 9. ZipFile.ExtractToDirectory fehlgeschlagen. Net-Core 2.0
- 10. Migration zu .NET Core 2.0
- 11. Servicestack 4.5.14 & .Net Core 2.0
- 12. .NET 2.0 Console App - App-Einstellungen lesen
- 13. Wie komme ich zu .NET in .NET Core 2.0?
- 14. SpecFlow on .net core 2.0
- 15. Wie wird .NET Core 2.0 ilasm.exe verwendet?
- 16. Kann Azure Graph in .Net Core 2.0 noch verwendet werden?
- 17. Aufnahme von WebCam in .Net Core 2.0
- 18. Build .NET Core 2.0 auf Travis CI
- 19. Tests mit eingebetteten Datenbank in .Net Core
- 20. Authentifizierung in dot net core Vorschau-2.0
- 21. Equivalent von PropertyInfo.IsPublic in .NET Core 2.0
- 22. .NET Core 2.0 Cookie-Authentifizierung - nicht umleiten
- 23. EF Core 2.0-Verbindungszeichenfolge in Azure-Funktionen .NET Core
- 24. .NET Core 2.0 Alternative zu 'Microsoft.Chart.Controls'
- 25. Referenz .net core 2.0 in ein .net 45/46 Projekt
- 26. .net core 2.0 externer Login - zusätzliche Profilinformationen
- 27. IIS-Autorisierungsregeln mit .net Core 2.0
- 28. .Net Core 2.0 Ersatz für HttpResponseBase
- 29. Bearer error = "invalid_token" von .net core 2.0
- 30. Konvertieren von .NET Core 2.0-Klassenbibliotheken in .NET-Standard
nicht relevant - ich spreche * Test * Projekt (xUnit). Es hat nicht alles. – alvipeo
Lösen Sie dieses Problem mit meiner Lösung? –