首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Elm 0.18中,如何在没有Elm测试的情况下执行命令行断言?

在Elm 0.18中,如何在没有Elm测试的情况下执行命令行断言?
EN

Stack Overflow用户
提问于 2017-05-27 22:19:00
回答 1查看 161关注 0票数 3

我有几十个榆树0.17程序来试验这种语言。每个脚本都具有简单的断言,程序将执行并运行所有断言,程序将成功(进程退出代码0)或失败(进程退出代码不是0)。下面是一个示例:

代码语言:javascript
复制
module Main exposing (..)

import ElmTest exposing (runSuite, suite, defaultTest, assertEqual)
import List exposing (map)

boss = { name = "Alice", salary = 200000 }
worker = { name = "Bob", salary = 50000, supervisor = boss }
newWorker = { worker | name = "Carol" }

payrollTax : { a | salary : Float } -> Float
payrollTax { salary } = salary * 0.15


main = runSuite <| suite "Exploring records" <| map defaultTest
    [ assertEqual "Alice" (.name boss)
    , assertEqual boss worker.supervisor
    , assertEqual 7500.0 (payrollTax worker)
    , assertEqual boss newWorker.supervisor
    ]

回到榆树0.17,我就跑

代码语言:javascript
复制
$ elm make records.elm --output tests.js && node tests.js

太好了,我要看看测试是否有效!

我最终决定运行elm upgrade以获得0.18,现在(并不令人惊讶)所有这些东西都坏了。显然,elm-test的整个概念现在已经完全改变了!当然,elm upgrade在更新我的elm-package.json方面做得很好

代码语言:javascript
复制
    "dependencies": {
        "elm-community/elm-test": "4.0.0 <= v < 5.0.0",

但是新的模块不再有ElmTestrunSuite和朋友了。我已经阅读了这些文档,并看到我们现在有了TestExpectFuzz,这很好。但现在看来我们应该

代码语言:javascript
复制
elm test init

然后

代码语言:javascript
复制
elm test

来发现和运行所有的测试。我认为,我们现在不用用main编写应用程序,而是将测试作为暴露Test对象的模块放在测试目录中。然后我们运行elm test

但我不是在试着做测试!我只想写一些关于语言特性的断言的脚本。我用其他几十种语言做过这件事,我觉得这是一个很好的学习方法。

那么,在ELM0.18中,我如何制作一个可以用elm make或类似的程序运行的程序,该程序从命令行运行并具有断言?(我知道Elm并不适用于命令行程序,但这在0.17中很容易做到,那么我如何在0.18中做类似的事情呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-30 08:53:06

你用的是那个图书馆的旧版本。runSuite、断言等来自1.0.0版本,当前版本是4.0.0+。

我推荐你读将指南从0.17升级到0.18榆树社区/榆树-最新测试文档

希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44222096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档