猿问

Github 操作 go test 找不到包错误。我怎样才能解决这个问题?

我有一个简单的 go 包,但是在 Github Actions 中进行测试期间,它因以下错误而失败:


##[error]keywords.go:8:2: cannot find package "github.com/securisec/go-keywords/languages" in any of:.


当我在本地运行测试时(我使用的是 go mod),所有测试都运行良好。


对于 Github 操作,我尝试将GO111MODULE两者都设置为on和off,但仍然遇到相同的错误。


可以在此处观察到错误。我的测试工作流程是:


name: tests


on:

  - push

  - pull_request


jobs:

  test:

    name: Test package

    strategy:

      max-parallel: 3

      fail-fast: false

      matrix:

        os:

          - ubuntu-latest

        go:

          - "1.11"

          - "1.13"

          - "1.14"

    runs-on: ${{ matrix.os }}

    steps:

      - name: Checkout

        uses: actions/checkout@v2

        env:

          GOPATH: ${{ runner.workspace }}

          GO111MODULE: "on"


      - name: Go setup

        uses: actions/setup-go@v1.0.0

        with:

          go-version: ${{matrix.go}}

        env:

          GOPATH: ${{ runner.workspace }}

          GO111MODULE: "on"

      - name: Run test

        env:

          GOPATH: ${{ runner.workspace }}

          GO111MODULE: "on"

        run: |

          go get -u github.com/grokify/html-strip-tags-go

          go test ./...

      - if: failure()

        run: ls -R

去模组文件:


module github.com/securisec/go-keywords


go 1.14


require github.com/grokify/html-strip-tags-go v0.0.0-20200322061010-ea0c1cf2f119

我该如何解决这个错误?


缥缈止盈
浏览 225回答 1
1回答

千巷猫影

因此,如果您查看完整的错误消息:##[error]keywords.go:8:2: cannot find package "github.com/securisec/go-keywords/languages" in any of:    /opt/hostedtoolcache/go/1.10.0/x64/src/github.com/securisec/go-keywords/languages (from $GOROOT)    /home/runner/work/go-keywords/src/github.com/securisec/go-keywords/languages (from $GOPATH)##[error]Process completed with exit code 1.您会注意到您正在尝试在 Go 1.10 中运行代码。Go 模块是在 Go 1.11 中引入的,所以它总是会抱怨应用程序没有安装依赖项。然后,如果您查看 Go 设置日志:Go setup    GO111MODULE: on##[warning]Unexpected input 'go-version', valid inputs are ['version']Run actions/setup-go@v1.0.0  with:    go-version: 1.11    version: 1.10  env:    GOPATH: /home/runner/work/go-keywords    GO111MODULE: on/bin/tar xzC /home/runner/work/_temp/0ce9b622-d798-400e-b86a-42d36359ad78 -f /home/runner/work/_temp/80f228cc-4b21-427f-b111-d9f296ed4990您会看到安装程序发出警告并默认为您安装 go 1.10。那是因为您已针对不了解 go-version 标志的特定版本 v1.0.0。(我认为它是在 v1.1.0 中添加的)解决方案:更改uses: actions/setup-go@v1.0.0以uses: actions/setup-go@v1获取最新的 v1 版本。甚至更好地使用 v2。
随时随地看视频慕课网APP

相关分类

Go
我要回答