Remix.run Logo
everybodyknows 4 days ago

> We named the package hello_test instead of hello. This is possible and it allows for writing tests that use only the public API (identifiers starting with a capital letter) of the tested package as a real user would.

Would be good to highlight here that *_test packages are the sole exception from Go's standard rule of one-package-only per source directory -- special cases being always an unfortunate additional heightening of the beginner's learning curve.

reisinge 4 days ago | parent | next [-]

Thanks, done: https://github.com/go-monk/from-bash-to-go-part-ii/commit/16...

ttz 4 days ago | parent | prev [-]

You can also include

package main

files in a non-main package directory (usually sed when implementing go generate)

arp242 4 days ago | parent [-]

What people usually do is add a build tag to the file(s) with package main, so they're not compiled on a regular compile/test run. But you can't combine them as such (and you can do this with any package name – there's nothing special about the main package here).

ttz 2 days ago | parent [-]

Yep - my point was that _test is not the only exception to the "rule"

arp242 19 hours ago | parent [-]

No, there is no exception for the "main" package. It's just build tag trickery. You can do this with any package names (although it doesn't make much sense to do so).