为了账号安全,请及时绑定邮箱和手机立即绑定

如何在本地创建和使用我自己的 golang 包来运行这个测试?

如何在本地创建和使用我自己的 golang 包来运行这个测试?

Go
繁花如伊 2021-09-27 21:08:42
我是 golang 的新手,正在完成编码练习,我在一个名为leap 的目录中拥有以下所有文件。我正在使用 gvm 运行 golang 可执行文件(版本 1.4),使用诸如“go test jump_test.go”之类的命令。当我去测试leap_test.go时,我得到以下结果:# command-line-argumentsleap_test.go:5:2: open /home/user/go/leap/leap: no such file or directoryFAIL    command-line-arguments [setup failed]如何包含 IsLeap() 函数以便测试正确运行。为什么cases_test.go 甚至包括在内?似乎leap_test.go 就是您进行测试所需的全部内容。case_test.gopackage leap// Source: exercism/x-common// Commit: 945d08e Merge pull request #50 from soniakeys/mastervar testCases = []struct {    year        int    expected    bool    description string}{    {1996, true, "leap year"},    {1997, false, "non-leap year"},    {1998, false, "non-leap even year"},    {1900, false, "century"},    {2400, true, "fourth century"},    {2000, true, "Y2K"},}飞跃_test.gopackage leapimport (    "testing"    "./leap")var testCases = []struct {    year        int    expected    bool    description string}{    {1996, true, "a vanilla leap year"},    {1997, false, "a normal year"},    {1900, false, "a century"},    {2400, true, "an exceptional century"},}    func TestLeapYears(t *testing.T) {        for _, test := range testCases {            observed := IsLeap(test.year)            if observed != test.expected {                t.Fatalf("%v is %s", test.year, test.description)            }        }    }飞跃package leapimport(    "fmt")func IsLeap(year int) bool {  return true}
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

用法:


go test [-c] [-i] [build and test flags] [packages] [flags for test binary]

例如,


飞跃/leap.go


package leap


func IsLeap(year int) bool {

    return true

}

飞跃/leap_test.go


package leap


import (

    "testing"

)


var testCases = []struct {

    year        int

    expected    bool

    description string

}{

    {1996, true, "a vanilla leap year"},

    {1997, false, "a normal year"},

    {1900, false, "a century"},

    {2400, true, "an exceptional century"},

}


func TestLeapYears(t *testing.T) {

    for _, test := range testCases {

        observed := IsLeap(test.year)

        if observed != test.expected {

            t.Fatalf("%v is %s", test.year, test.description)

        }

    }

}

如果$GOPATH设置为包含leap包目录:


$ go test leap

--- FAIL: TestLeapYears (0.00s)

    leap_test.go:22: 1997 is a normal year

FAIL

FAIL    leap    0.003s

$

或者,如果你cd到leap包目录:


$ go test

--- FAIL: TestLeapYears (0.00s)

    leap_test.go:22: 1997 is a normal year

FAIL

exit status 1

FAIL    so/leap 0.003s


查看完整回答
反对 回复 2021-09-27
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信