有没有办法在 .net core 中对 F# 项目进行单元测试?

2023-11-26

我正在尝试创建一个在 .net core 中运行的 F# 单元测试项目。

dotnet new -t xunittest

将为 C# 创建一个 xunit 测试项目,但 F# 不存在此类等效项。

我尝试修改从上面显示的 C#“dotnet new”输出的 project.json 和测试文件,并添加我认为使其与 F# 一起运行所需的位。它不起作用。它会在输入“dotnet test”后构建甚至“运行”测试,但测试总是会通过,即使它不应该通过。

我是否在设置中遗漏了某些内容,或者是否可以采用另一个(可能完全不同的)选项来创建 F# 测试项目?同样,我特别专注于让它与 .net core 一起工作。

项目.json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true,
    "compilerName": "fsc",
    "compile": {
      "includeFiles": [
        "Tests.fs"
      ]
    }
  },
  "dependencies": {
    "System.Runtime.Serialization.Primitives": "4.3.0",
    "xunit": "2.1.0",
    "dotnet-test-xunit": "1.0.0-*"
  },
  "tools": {
    "dotnet-compile-fsc": "1.0.0-preview2.1-*"
  },
  "testRunner": "xunit",
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        },
        "Microsoft.FSharp.Core.netcore": "1.0.0-alpha-160629"
      },
      "imports": [
        "dotnet5.4",
        "portable-net451+win8"
      ]
    }
  }
}

Tests.fs

module Tests

open Xunit

    [<Fact>]
    let ``Should Fail`` =        
        Assert.False true 

dotnet 测试的输出

xUnit.net .NET CLI test runner (64-bit .NET Core win10-x64)
  Discovering: FSTests
  Discovered:  FSTests
=== TEST EXECUTION SUMMARY ===
   FSTests.dll  Total: 0
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.

您的测试不是一个函数,而是一个值。作为属性或字段编译为 IL(取决于原因)。 xUnit 寻找要执行的方法,它会跳过属性和字段(正确的是:它将如何执行它们?)

为什么它不是一个函数?因为它没有参数。这是 F# 的事情:如果你有参数,你就是一个函数。否则-值。

只要给它一个参数,它就会变成一个函数。没有任何有意义的参数要添加?添加一个unitone - 然后它将作为无参数静态方法编译为 IL。

[<Fact>]
let ``Should Fail`` () =        
    Assert.False true 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在 .net core 中对 F# 项目进行单元测试? 的相关文章

  • 如何使用 axios / jest 测试失败的请求

    我创建了一个非常小的应用程序 如果您传递硬币和数量 它可以计算为某些加密货币支付的总价格 我想测试错误 但我总是收到 收到的承诺已解决而不是被拒绝 我相信这是因为如果 url 错误 axios 仍然会解决承诺 我遇到的第二个问题是 我尝试测
  • Xamarin Studio 上的代码覆盖率

    是否有可靠的工具可以帮助我们测量单元测试的代码覆盖率 我主要从事 Xamarin 项目 在 Xamarin Studio 中 为了不得到大量 1 我环顾四周 但找不到足够成熟可靠的东西 我不要求产品免费 但如果是的话当然更好 Mono 4
  • 如何对这个 Flask 应用程序进行单元测试?

    我有一个 Flask 应用程序 它使用 Flask Restless 来提供 API 我刚刚写了一些身份验证来检查 如果消费者主机被识别 该请求包含一个哈希值 通过加密 POST 的请求内容和 GET 的 URL 以及秘密 API 密钥来计
  • .Net Framework 中的 HashCode 等效项

    在将 NET Core 项目转换为 NET Framework 时 需要注意的一件事是使用哈希码现在需要转换为等效的内容 可以看出 Hashcode 特定于 NET core 版本和一些扩展 https learn microsoft co
  • 使用 googletest(Google C++ 测试框架)测试 C 代码

    我正在尝试使用 googletest 测试 C 代码 但是当我的 C 头文件包含在 C 测试文件中时 我遇到了一些问题 因为 g 编译器将它们作为 C 头处理 我尝试将这些标头包含在其中extern C 没有成功 有没有办法 g 编译器可以
  • 如何在 Swift 中模拟 UIApplication?

    我目前正在使用 Quick Nimble 进行 Swift 单元测试 我正在建立一个Inviter通过不同方法发送应用程序邀请的类 我需要模拟 UIApplication 来验证我的代码调用openURL 到目前为止我的代码 import
  • 如何在 C 中使用 google 模拟?

    我正在维护一个用 C 编写的遗留项目 并且无法使用 C 编译器运行它 由于代码是交叉编译的 因此可以在主机环境中运行单元测试或类似测试 因此 也可以与 C 主机编译器交互并使用 google test 和 google mock googl
  • ConfigurationManager.AppSettings 始终为空

    我搜索的主题 ConfigurationManager AppSettings 计数 0 https stackoverflow com questions 44034692 configurationmanager appsettings
  • 我是否可以以编程方式要求 eclipselink 删除并创建所有表?

    这有助于单元测试 以下内容应该适合您 ServerSession session entityManager unwrap ServerSession class SchemaManager schemaManager new Schema
  • 使用 DI 进行单元测试和模拟服务

    我已经为此苦苦挣扎了一段时间 希望有人能提供帮助 我有一个使用服务来获取数据的组件 我正在尝试向其添加单元测试 我的问题是测试总是失败并显示 错误 没有 Http 提供程序 这是我的代码 Service import Injectable
  • 如何使用 Boost.Test 指定预期会出现异常?

    我有一个 Boost 单元测试用例 它会导致被测对象抛出异常 这就是测试 导致异常 我如何在测试中指定预期特定的异常 我可以使用 BOOST AUTO TEST CASE EXPECTED FAILURES 指定测试应该有一定数量的失败 但
  • 单元测试 SqlFunction

    我有一个公开 IQueryable 的存储库和一个处理特定查询的服务 这里有一些使用 DbFunctions 的方法 为了可测试 我创建了一个带有静态元素列表的假存储库并将其注入到服务中 问题是 由于我的服务查询列表并且不使用数据库 因此我
  • F#:开发定理证明器可以吗?

    请指教 我是一名律师 从事法律信息学领域的工作 我已经做了很长时间的程序员 Basic RPG Fortran Pascal Cobol VB NET C 我目前对 F 感兴趣 但我需要一些建议 我担心的是 F 似乎适合数学应用 我想要的将
  • 如果单元测试如此出色,为什么没有更多的公司这样做呢? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 完全限定名称、带导入声明的非限定名称解析不同

    这有效 open System let f Action fun gt Unchecked defaultof lt gt But this let f System Action fun gt Unchecked defaultof lt
  • sprintf 与 String.Format 的性能[重复]

    这个问题在这里已经有答案了 我正在比较 sprintf 用法的性能 并对我所看到的感到有点困扰 我测试了以下 4 个方法 将 ClassWithToString 的实例传递给每个方法 PrintInt 除外 它接收实际的整数值 type C
  • 如何在控制器中模拟 Automapper (IMapper)

    我正在尝试为现有的 MVC Web 应用程序编写单元测试 我在自动映射器中面临一些问题 IMapper 每当使用地图函数时它都会返回null value 我的控制器代码 public class UserAdministrationCont
  • 编写单元测试标准

    我计划向我的团队引入一套编写单元测试的标准 但要包括什么 这两篇文章 单元测试命名最佳实践 https stackoverflow com questions 155436 unit test naming best practices a
  • PHPUnit 测试套件包含路径

    使用 phpunit 时 我在包含路径方面遇到了一些麻烦 不是针对 phpunit 本身 而是针对我的代码和测试目录 我有以下代码结构 Application StringCalculator php tests StringCalcula
  • dotnet 使用 gitlab-ci 为傻瓜发布

    我正在尝试使用 gitlab ci 设置 ci 我对此有几个问题 gitlab ci 上好像没有回滚机制 那么如果部署阶段失败我应该关心回滚吗 我计划使用 dotnetpublishSolution sln crelease 脚本 但我在这

随机推荐