C# 不带测试服务器的.net core 2.1应用程序集成测试

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() {

我想测试使用MSTEST从appsettings.json文件获取配置的业务逻辑类方法

我创建了测试项目,并将appsettings.json和startup.cs文件从主项目复制到测试项目

    [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如何在没有主机的情况下测试项目初始化设置。Run
Startup
Configuration
属性不是静态的,因此我不知道您是如何访问它的。您可以发布您的业务逻辑类吗?