34 lines
1.1 KiB
Go
34 lines
1.1 KiB
Go
// version_test.go 驗證版本字串解析:go test 環境 Main.Version 為 "(devel)"
|
||
// 時應退回開發版本號;tag 與 pseudo-version 行為由建置驗證涵蓋
|
||
// (go install pkg@tag 顯示 tag;clone 建置顯示 pseudo-version)。
|
||
package cli
|
||
|
||
import (
|
||
"strings"
|
||
"testing"
|
||
)
|
||
|
||
// TestBuildVersionFallsBackToDev 確認本地測試環境(Main.Version == "(devel)")
|
||
// 退回 Version;同時確保輸出是可讀版本字串(非空、無括號)。
|
||
func TestBuildVersionFallsBackToDev(t *testing.T) {
|
||
v := buildVersion()
|
||
if v == "" {
|
||
t.Fatalf("buildVersion 不應為空")
|
||
}
|
||
if strings.ContainsAny(v, "()") {
|
||
t.Errorf("buildVersion 不應含內部佔位(括號),得到:%q", v)
|
||
}
|
||
}
|
||
|
||
// TestRunVersionUsesBuildVersion 確認 version 命令輸出 buildVersion 的結果。
|
||
func TestRunVersionUsesBuildVersion(t *testing.T) {
|
||
stdout, _, code := run("version")
|
||
if code != 0 {
|
||
t.Fatalf("version 應回 0,得到 %d", code)
|
||
}
|
||
want := "teai version " + buildVersion()
|
||
if !strings.Contains(stdout, want) {
|
||
t.Errorf("version 輸出應含 %q,得到:%q", want, stdout)
|
||
}
|
||
}
|