c# – 如何对ASP.NET核心Web应用程序(.Net Framework)进行单元测试?

前端之家收集整理的这篇文章主要介绍了c# – 如何对ASP.NET核心Web应用程序(.Net Framework)进行单元测试?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个ASP.NET核心Web应用程序(.Net Framework),并且很难弄清楚如何将单元测试挂钩到它.我的目标是.net框架版本4.6.1

如果我创建一个针对4.6.1的常规“类库”项目,就像我以前的MVC版本一样,它允许我添加对我的MVC项目的引用(这是同一解决方案的一部分),但是我通过使用添加的任何命名空间语句报告错误,我可能会错过引用或使用语句.如果我双击解决方案资源管理器中“参考”部分下的引用,它会告诉我项目无法找到或尚未构建.

我尝试创建一个“类库(.NET Core)”,但由于我的目标是.Net Framework而不是.NET Core,因此抱怨.我编辑了类库lib.json,使它以.net框架为目标,这让我可以添加我的引用,并且当我在using语句中使用命名空间时,我不会抱怨,但测试运行器没有发现我的测试.我已经尝试了XUnit和NUnit,它们的行为都相同.

是否可以对面向.Net Framework 4.6.1的ASP.Net核心Web应用程序进行单元测试,还是需要提交到.NET Core?

编辑以添加我的测试类
这是我的测试类被剥离到最低限度. TestBank.Services是我想要测试的类.

using System;
using TestBank.Services;
using Xunit;

namespace TestBankUnitTests
    {    
    public class Class1
    {        
        [Fact]
        public void TestA()
        {
            Assert.True(false);
        }
    }
}

这是我的project.json

{
    "version": "1.0.0-*","dependencies": {
        "xunit": "2.1.0","dotnet-test-xunit": "1.0.0-rc2-build10025","TestBank": "1.0.0-*"
    },"frameworks": {
        "net461": {
        }
    }
}

解决方法

您的project.json需要testRunner设置.根据 project.json documentation,testRunner设置不仅指定要使用的测试框架,还将项目标记为测试项目.

尝试添加它并查看它是否找到了您的测试(在本地验证它在文件中没有此设置时将找不到测试)

{
    "version": "1.0.0-*","frameworks": {
        "net461": {
        }
    },"testRunner": "xunit"
}

猜你在找的C#相关文章