C# 不带测试服务器的.net core 2.1应用程序集成测试
我想测试使用MSTEST从appsettings.json文件获取配置的业务逻辑类方法 我创建了测试项目,并将appsettings.json和startup.cs文件从主项目复制到测试项目C# 不带测试服务器的.net core 2.1应用程序集成测试,c#,.net,integration-testing,asp.net-core-2.1,C#,.net,Integration Testing,Asp.net Core 2.1,我想测试使用MSTEST从appsettings.json文件获取配置的业务逻辑类方法 我创建了测试项目,并将appsettings.json和startup.cs文件从主项目复制到测试项目 [TestClass] public class TestClass { private BusinessLogicClass businessLogicClass; [TestInitialize] public void TestInitialize() {
[TestClass]
public class TestClass
{
private BusinessLogicClass businessLogicClass;
[TestInitialize]
public void TestInitialize()
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: false).Build();
var host = WebHost.CreateDefaultBuilder()
.UseStartup<Startup>()
.Build();
host.Run();
businessLogicClass = new BusinessLogicClass();
}
[TestMethod]
public void TestMethod()
{
// Calling BusinessLogicClass Method
businessLogicClass.MethodToTest();
}
[TestClass]
公共类TestClass
{
private BusinessLogicClass BusinessLogicClass;
[测试初始化]
public void TestInitialize()
{
var config=new ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“appsettings.json”,可选:false,reloadOnChange:false).Build();
var host=WebHost.CreateDefaultBuilder()
.UseStartup()
.Build();
host.Run();
businessLogicClass=新的businessLogicClass();
}
[测试方法]
公共void TestMethod()
{
//调用BusinessLogicClass方法
businessLogicClass.MethodToTest();
}
当我调试测试项目时,测试项目在host.run上卡住了,并且从未执行过测试方法。请帮助我。您可以添加代码来显示如何在
MethodToTest()中获取配置吗
。通过Startup.Configuration var DBName=Startup.Configuration[“Databases:DatabaseName”];显然,您不应该尝试调用Run
,这是一种阻塞方法。@LexLi如何在没有主机的情况下测试项目初始化设置。RunStartup
的Configuration
属性不是静态的,因此我不知道您是如何访问它的。您可以发布您的业务逻辑类吗?