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
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")/''
Bạn vẫn sẽ cần một thư viện để thêm mã thoát màu như:
- cho Windows:
mattn/go-colorable
hoặcshiena/ansicolor
- cho Unix hoặc Windows:
fatih/color
hoặckortschak/ct
- cho Unix hoặc Windows:
logrusorgru/aurora
(được đề cập bởi Ivan Black trong the comments)
Từ đó, bạn chỉ định những gì bạn muốn tô màu (StdOut hoặc StdErr, như in this example)
Hiện tại, 'kortschak/ct' không hỗ trợ Windows. –
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))' –
@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
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.
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:
Để 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 ./..
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.
- 1. Colorizing đầu ra của các thử nghiệm Django
- 2. Kiểm tra Golang Goroutine
- 3. mẫu đầu ra golang
- 4. 'Ngăn đầu ra kiểm tra' ở đâu?
- 5. Kiểm tra PHPUnit cho Đầu ra JSON
- 6. golang - Cách kiểm tra thông tin multipart.File
- 7. Cách kiểm tra NaN trong golang
- 8. Kiểm tra Golang trong thư mục con
- 9. Jasmine, Grunt, RequireJS Dừng lại trên đầu ra kiểm tra
- 10. Kiểm tra xem đầu ra có được chuyển hướng
- 11. Đầu ra kiểm tra đến dòng lệnh với RSpec
- 12. Làm thế nào để kiểm tra net.Conn trong các bài kiểm tra đơn vị trong Golang?
- 13. Kiểm tra đầu ra của lệnh trong tập lệnh shell
- 14. Thi đua đối tượng mặc định # kiểm tra đầu ra?
- 15. Chuỗi Bash (đầu ra lệnh) kiểm tra bình đẳng
- 16. Cách giữ đầu ra kiểm tra đơn vị trong Jenkins
- 17. Kiểm tra lại đơn vị kiểm tra không chạy
- 18. Cách kiểm tra chức năng ngủ ở golang
- 19. cách golang kiểm tra một biến là con số không
- 20. Kiểm tra chạy cron nhập
- 21. Làm thế nào để kiểm tra io.writer trong golang?
- 22. Khi sử dụng "kiểm tra ngăn xếp", đầu ra kiểm tra hspec của tôi không được tô màu
- 23. xcodebuild làm hỏng kết quả kiểm tra đầu ra khi đầu ra được chuyển hướng đến tệp
- 24. Làm thế nào để kiểm tra đầu ra console.log bằng cách sử dụng Jest hoặc khung kiểm tra Javascript khác?
- 25. Kiểm tra ban đầu và cuối cùng khi chạy bộ kiểm thử pytest
- 26. Đầu ra Kiểm tra Đơn vị & Tư vấn Cấu trúc Dự án --- CMake + Khung kiểm tra của Google
- 27. Chạy firefox Xvfb không đầu bằng Jenkins để chạy kiểm tra selen
- 28. Sails js kiểm tra chạy
- 29. Ngăn chặn đầu ra của kiểm tra tình trạng dừng được in ra màn hình
- 30. Kiểm tra xem Chronometer có đang chạy
Đó 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. –
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