Есть несколько способов сделать это.
1) Это не совсем то, что вы описали, но есть возможность добавить файл с именем example_test.go
в ваш пакет coolstuff. Если вы просто установите пакет, этот файл будет проигнорирован, однако когда вы выполняете gotest внутри вашего пакета coolstuff, тогда gotest автоматически соберет ваш пакет, включающий все файлы *_test.go
, и запустит их. На мой взгляд, это самый простой способ, так как вам не нужно иметь дело с несколькими пакетами, и вы также можете предоставить много независимых примеров / тестовых случаев. В будущих версиях go эти примеры будут добавлены в вашу документацию по godoc pkg.
2) Если вам неудобно использовать Makefiles, возможно, вы захотите поближе взглянуть на goinstall . Вы можете установить переменную окружения GOPATH
, чтобы определить свой собственный каталог проекта. Пример структуры каталогов, которая подходит для goinstall, приведен внизу страницы. («bar» похожа на ваш «coolstuff pkg», а «qux» может быть вашим «примером»). goinstall автоматически определит все эти зависимости сборки.
3) Использование Makefiles также возможно. Создание двух из них, один из которых основан на Make.pkg для вашего каталога пакета coolstuff, а другой - на основе Make.cmd для вашего примера каталога, звучит как хорошая идея. Вы можете найти некоторые примеры go Makefiles здесь .