在TravisCI中的Go中创建带有扩展名的临时文件

I am working on testing an application of mine, for which I need to create temporary files with specific extensions. My goal is to create files in a temp directory that look similar to this example123.ac.json.

In order to do this I am using ioutil.TempDir and ioutil.TempFile.

Here is a small contrived example of what I am doing.

main.go:

package main

func main() {
}

main_test.go:

package main

import (
    "fmt"
    "io/ioutil"
    "os"
    "testing"
)

func TestMain(t *testing.T) {
    dir, err := ioutil.TempDir("", "testing")
    if err != nil {
        t.Fatalf("unable to create temp directory for testing")
    }
    defer os.RemoveAll(dir)

    file, err := ioutil.TempFile(dir, "*.ac.json") // Create a temporary file with '.ac.json' extension
    if err != nil {
        t.Fatalf("unable to create temporary file for testing")
    }

    fmt.Printf("created the following file: %v
", file.Name())
}

When I run the tests locally on my Mac with go test the following is outputted from the fmt.Printf is

$ go test
created the following file: /var/folders/tj/1_mxwn350_d2c5r9b_2zgy7m0000gn/T/testing566832606/900756901.ac.json
PASS
ok      github.com/JonathonGore/travisci-bug    0.004s

So it works as expected but when I run it in TravisCI the following is outputted from the Printf statement:

created the following file: /tmp/testing768620677/*.ac.json193187872

For some reason it is using the literal asterisk inside TravisCI but not when running on my own computer.

Here is a link to the TravisCI logs if interested.

For completeness here is my .travis.yml:

language: go
go:
  - "1.10"

Anyone have any idea what is going on here? Or am I missing something obvious?

查看全部
dpbrrczhlwbv849228
dpbrrczhlwbv849228
2018/09/01 15:59
  • it技术
  • 互联网问答
  • IT行业问题
  • 编程语言问答
  • 计算机技术
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

1个回复