2014-12-02 15 views
23

Tôi thích nó khi chạy thử nghiệm thiết bị đầu cuối/bàn điều khiển thực sự hiển thị đầu ra của chúng trong văn bản màu đỏ hoặc màu xanh lục. Có vẻ như rất nhiều thư viện thử nghiệm có sẵn cho Go có điều này. Tuy nhiên, tôi chỉ muốn sử dụng gói thử nghiệm mặc định đi kèm với Go. Có cách nào để tô màu đầu ra của nó với màu đỏ và màu xanh lá cây?colorizing kiểm tra đầu ra chạy golang

Trả lời

38

Bạn có thể tạo tập lệnh trình bao bọc cho màu này và tô màu bằng chuỗi thoát màu. Dưới đây là một ví dụ đơn giản trên Linux (Tôi không chắc chắn trông như thế nào trên cửa sổ, nhưng tôi đoán đó là một cách .. :))

go test -v . | sed ''/PASS/s//$(printf "\033[32mPASS\033[0m")/'' | sed ''/FAIL/s//$(printf "\033[31mFAIL\033[0m")/'' 
+0

Đó là một giải pháp trọng lượng nhẹ tốt. Tôi không nghĩ đến việc chỉ dẫn đầu ra cho sed. Nó hoạt động. Cảm ơn. –

+1

Cảm ơn! Tôi đã thêm vào các tham số và thêm nó làm bí danh. Vì vậy, mỗi khi tôi muốn chạy tất cả các bài kiểm tra tôi chỉ cần chạy 'got' – IvRRimUm

4

Bạn vẫn sẽ cần một thư viện để thêm mã thoát màu như:

Từ đó, bạn chỉ định những gì bạn muốn tô màu (StdOut hoặc StdErr, như in this example)

+0

Hiện tại, 'kortschak/ct' không hỗ trợ Windows. –

+0

Ngoài ra còn có [github.com/logrusorgru/aurora] (https://github.com/logrusorgru/aurora) cho Unix và Win10 +, hỗ trợ định dạng Printf/Sprintf. Ví dụ 'fmt.Printf (" giá trị% d ", Đỏ (3))' –

+0

@IvanBlack Cảm ơn bạn. Tôi đã thêm liên kết của bạn vào câu trả lời để hiển thị nhiều hơn. – VonC

1

BoltDB có một số phương pháp thử mà trông như thế này:

func assert(tb testing.TB, condition bool, msg string, v ...interface{}) { 
    if !condition { 
     _, file, line, _ := runtime.Caller(1) 
     fmt.Printf("\033[31m%s:%d: "+msg+"\033[39m\n\n", append([]interface{}{filepath.Base(file), line}, v...)...) 
     tb.FailNow() 
    } 
} 

Here are the rest. Tôi đã thêm các chấm màu xanh lá cây here.

32

Bạn có thể sử dụng grc, máy colourizer chung, để ghi lại mọi thứ.

Trên Debian/Ubuntu, hãy cài đặt với apt-get install grc. Trên máy Mac có, brew install grc.

Tạo một thư mục config trong thư mục chính của bạn:

mkdir ~/.grc 

Sau đó tạo cấu hình GRC cá nhân của bạn trong ~/.grc/grc.conf:

# Go 
\bgo.* test\b 
conf.gotest 

Sau đó tạo một Go kiểm tra colourization config trong ~/.grc/conf.gotest, chẳng hạn như:

regexp==== RUN .* 
colour=blue 
- 
regexp=--- PASS: .* 
colour=green 
- 
regexp=^PASS$ 
colour=green 
- 
regexp=^(ok|\?) .* 
colour=magenta 
- 
regexp=--- FAIL: .* 
colour=red 
- 
regexp=[^\s]+\.go(:\d+)? 
colour=cyan 

Bây giờ bạn có thể chạy Go thử nghiệm với:

grc go test -v ./.. 

Mẫu đầu ra:

screenshot

Để tránh gõ grc tất cả các thời gian, thêm bí danh vào shell của bạn (nếu sử dụng Bash, hoặc ~/.bashrc hay ~/.bash_profile hoặc cả hai, tùy thuộc vào hệ điều hành của bạn):

alias go=grc go 

Bây giờ bạn nhận được colourization chỉ đơn giản bằng cách chạy:

go test -v ./.. 
+0

Đẹp nhất. Tôi sẽ thử nó trên nhật ký của mình. +1 – VonC

+1

Câu trả lời hay. Làm việc như một say mê. –

+0

Điều này thật tuyệt vời. – Roshambo

6

Ngoài ra còn có một công cụ gọi là richgo thực hiện điều này một cách thân thiện với người dùng.

enter image description here

Các vấn đề liên quan