dongqu7778 2016-01-30 07:51
浏览 447
已采纳

不要运行名称为package_test.go的程序

I have following code under package pack1. Name of file is pack1.go

package pack1

var Pack1Int int = 42
var pack1Float = 3.14

func ReturnStr() string {
    return "Hello world!"
}

And following code in main program. Name of file is package_test.go

package main

import (
    "fmt"
    "./pack1"
)

func main() {
    var test1 string
    test1 = pack1.ReturnStr()
    fmt.Printf("Return string from pack1 : %s
", test1)
    fmt.Printf("Integer from pack1 : %d
", pack1.Pack1Int)
}

When I try to run it with command go run package_test.go I get following error:

go run: cannot run *_test.go files (package_test.go)

But if I rename file to abc.go then I am getting proper output i.e.

Return string from pack1 : Hello world!
Integer from pack1 : 42

I am curious about what is wrong with using package_test.go as file name. For code with only main package this name is working fine.

Is this a bug in Go or I am doing something wrong ?

  • 写回答

2条回答 默认 最新

  • dongtiran7769 2016-01-30 08:20
    关注

    You can't name your program files as *_test.go as this is part of integrated Go testing system

    To write a new test suite, create a file whose name ends _test.go that contains the TestXxx functions as described here. Put the file in the same package as the one being tested. The file will be excluded from regular package builds but will be included when the “go test” command is run. For more detail, run “go help test” and “go help testflag”.

    Just rename package_test.go to packagetest.go

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号