Home  >  Article  >  Backend Development  >  How to tell Gazelle that go files are for go_default_test instead of go_default_library?

How to tell Gazelle that go files are for go_default_test instead of go_default_library?

WBOY
WBOYforward
2024-02-08 22:24:10457browse

如何告诉瞪羚 go 文件适用于 go_default_test 而不是 go_default_library?

php editor Apple will introduce you how to tell Gazelle go files to apply to go_default_test instead of go_default_library. In Go language, Gazelle is a powerful build tool for organizing and building Go projects. By default, Gazelle treats all files ending with _test.go as test files and includes them in go_default_test. However, sometimes we want to exclude certain test files from go_default_test and include them in other targets, such as go_default_library. So, how to achieve this? Next, we will give you detailed answers.

Question content

I have a file embed_testdata.go that is intended for testing but has no tests itself (so I don't want to use _test.go as suffix). How do I tell gazelle that it is indeed a test source and not a production source?

FYI, just adding it to go_default_test and removing it from go_default_library won't work because gazelle will undo that manually edit.

Solution

https://www.php.cn/link/9877c66299c5b98d81fed12827d87e4b are all valid ngazelle instructions.

There are no specific instructions telling it to treat non-_test.go files as tests, but there are two that can be used to this effect, exclude and keep

# gazelle:exclude embed_testdata.go
…
go_test(
    name = "go_default_test",
    srcs = [
        "embed_testdata.go",  # keep
…

When embedding the file system, you also need content similar to the following:

go_test(
    name = "go_default_test",
…
    embedsrcs = glob(["testdata/**"]), # keep
…

The above is the detailed content of How to tell Gazelle that go files are for go_default_test instead of go_default_library?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete