গো ইউনিট পরীক্ষার জন্য কেউ কি কোড কভারেজ তৈরি করতে সফল হয়েছে? ওয়েবে আমি এর জন্য কোনও সরঞ্জাম পাই না।
গো ইউনিট পরীক্ষার জন্য কেউ কি কোড কভারেজ তৈরি করতে সফল হয়েছে? ওয়েবে আমি এর জন্য কোনও সরঞ্জাম পাই না।
উত্তর:
নোট করুন যে গো 1.2 (Q4 2013, আরসি 1 উপলব্ধ) এখন পরীক্ষা কভারেজ ফলাফল প্রদর্শন করবে :
এর একটি প্রধান নতুন বৈশিষ্ট্য
go test
হ'ল এটি এখন গণনা করতে পারে এবং নতুন, পৃথকভাবে ইনস্টল করাgo tool cover
প্রোগ্রামের সাহায্যে " " পরীক্ষার কভারেজ ফলাফল প্রদর্শন করে ।
cover
টুল অংশgo.tools
subrepository । এটি চালিয়ে ইনস্টল করা যেতে পারে
$ go get golang.org/x/tools/cmd/cover
কভার টুল দুটি জিনিস করে।
- প্রথমে, যখন পতাকাটি
go test
দেওয়া হয়-cover
, প্যাকেজটির উত্সটি পুনরায় লিখতে এবং উপকরণের বিবৃতি সন্নিবেশ করার জন্য এটি স্বয়ংক্রিয়ভাবে চালিত হয়। পরীক্ষাটি পরে সংকলিত হয় এবং যথারীতি চালানো হয় এবং প্রাথমিক কভারেজের পরিসংখ্যানগুলি রিপোর্ট করা হয়:
$ go test -coverprofile fmtcoverage.html fmt
ok fmt 0.060s coverage: 91.4% of statements
$
দ্বিতীয়ত, আরও বিশদ প্রতিবেদনের জন্য, "গো পরীক্ষা" -এর জন্য পৃথক পতাকা একটি কভারেজ প্রোফাইল ফাইল তৈরি করতে পারে, যা কভার প্রোগ্রামটি "
go tool cover
" এর সাথে অনুরোধ করা হয়েছিল, তারপরে বিশ্লেষণ করতে পারে।
গো (2013/09/19) এর সর্বশেষ সংস্করণগুলি ব্যবহার করুন:
go test -coverprofile <filename> <package name>
কভারেজের পরিসংখ্যান কীভাবে তৈরি করা যায় এবং বিশ্লেষণ করা যায় তার বিশদগুলি কমান্ডগুলি চালিয়ে পাওয়া যাবে
$ go help testflag
$ go tool cover -help
ইভান ব্ল্যাক মন্তব্যগুলিতে উল্লেখ করেছেন :
go test -coverprofile cover.out
এবং তারপরে আপনার ডিফল্ট ব্রাউজারে
go tool cover -html=cover.out
খোলেcover.out
আমি এমনকি ব্রাউজারটি খোলার জন্য অপেক্ষা করতে চাই না, তাই আমি এই উপনামটি সংজ্ঞায়িত করেছি:
alias gc=grep -v -e " 1$" cover.out
আমি শুধু যে ধরনের gc
, এবং সমস্ত লাইনের একটি তালিকা আছে না এখনো আবৃত (এখানে: একটি সঙ্গে coverage.out
লাইন না সঙ্গে "বিভক্তি 1
")।
go test -coverprofile cover.out
এবং তারপরে ব্রাউজারে go tool cover -html=cover.out -o cover.html
খুলুনcover.html
go tool cover -html=cover.out
স্বয়ংক্রিয়ভাবে একটি ব্রাউজার খুলবে, তবে এটি আমার সিস্টেমে কার্যকর হয় না। আমি ব্রাউজারটি উন্মুক্ত রাখতে এবং প্রয়োজনে পৃষ্ঠাটি রিফ্রেশ করতে পছন্দ করি।
গো পরীক্ষা এবং কভারেজ জন্য দুর্দান্ত সরঞ্জাম সহ আসে। যদিও সমস্ত গো সরঞ্জামগুলি নথিভুক্ত রয়েছে go tool cover -help
আমি সরকারী গো ব্লগে কভার স্টোরি নিবন্ধটি পড়ার পরামর্শ দেব । এর প্রচুর উদাহরণ রয়েছে এবং আমি দৃ strongly়ভাবে এটির প্রস্তাব দিচ্ছি!
আমার function / .Bash_ প্রোফাইলে আমার এই ফাংশনটি রয়েছে। (এটি চেষ্টা করার জন্য আপনি কেবল এটি টার্মিনালে পেস্ট করতে পারেন)।
cover () {
t="/tmp/go-cover.$$.tmp"
go test -coverprofile=$t $@ && go tool cover -html=$t && unlink $t
}
তারপরে cd
একটি গো প্রকল্পে / প্যাকেজ ফোল্ডারে লিখুন এবং টাইপ করুন cover
। এটি ব্রাউজারে একটি ভিজ্যুয়াল সরঞ্জাম খোলে যা আপনাকে বর্তমান প্যাকেজের প্রতিটি ফাইলের জন্য পরীক্ষিত এবং অরীক্ষিত কোড দেখায়। খুব দরকারী আদেশ! 100% যা এখনও পরীক্ষিত নয় তা সন্ধানের জন্য আমি দৃ strongly়তার সাথে এটি সুপারিশ করছি! প্রদর্শিত ফলাফল প্রতি ফাইল হয়। উপরের-বামে একটি ড্রপ ডাউন থেকে আপনি সমস্ত ফাইলের ফলাফল দেখতে পারেন।
এই কমান্ডের সাহায্যে আপনি কোনও প্যাকেজের কভারেজ পরীক্ষা করতে পারেন উদাহরণস্বরূপ:
cover fmt
এই কমান্ড থেকে টার্মিনালে আউটপুট হবে:
ok fmt 0.031s coverage: 91.9% of statements
আপনার ব্রাউজারে এটির পাশাপাশি আপনি দেখতে পাবেন যে এই সরঞ্জামটি কোডের সমস্ত লাইনকে পরীক্ষায় আচ্ছন্ন করে রেড দেখাচ্ছে:
এইচটিএমএল কভারেজ ফাইলটি ব্রাউজারে না খোলার পরিবর্তে এটি সংরক্ষণ করাও সম্ভব। আপনার পরীক্ষাগুলি + কভারেজ জেনকিনসের মতো সিআই সরঞ্জাম দ্বারা পরিচালিত হয় ক্ষেত্রে এটি খুব কার্যকর is এইভাবে আপনি একটি কেন্দ্রীয় সার্ভার থেকে কভারেজ ফাইলগুলি পরিবেশন করতে পারেন এবং পুরো টিম প্রতিটি বিল্ডের জন্য কভারেজের ফলাফল দেখতে সক্ষম হবে।
উপরের ভাল উত্তরের পাশাপাশি, আমি এই তিনটি লাইন এটির সর্বাধিক সহজ উপায় হিসাবে খুঁজে পেয়েছি (যার মধ্যে সমস্ত প্যাকেজ রয়েছে):
go test -v -coverprofile cover.out ./YOUR_CODE_FOLDER/...
go tool cover -html=cover.out -o cover.html
open cover.html
নোট করুন যে এইচটিএমএল ফাইলে আপনি একটি ড্রপডাউন বোতাম পাবেন যা আপনাকে সমস্ত ফাইলে ডাইরেক্ট করবে।
এটি ঠিক এখানে , কিছু ডক্স এখানে ।
$ go tool
6a
6c
6g
6l
addr2line
api
cgo
cov
dist
ebnflint
fix
gotype
nm
objdump
pack
pprof
prof
vet
yacc
$ go tool cov -h
usage: cov [-lsv] [-g substring] [-m minlines] [6.out args...]
-g specifies pattern of interesting functions or files
go tool cov: exit status 1
$
আমি এটি ব্যবহার করি নি, এটাই আমি জানি।
~/go/pkg/tool/linux_amd64
আমার শেষ গোপনের সাথে মেলে দেখলাম কোভ বাইনারি টাইম স্ট্যাম্প ।
আপনি যদি টার্মিনালে সরাসরি ফাংশন দ্বারা অনাবৃত লাইনগুলি দেখতে চান তবে আমি এই উদ্দেশ্যে কভার সরঞ্জামটি পুনরায় লিখেছি। এটি https://github.com/gregoryv/uncover এ উপলব্ধ ।
ব্যবহার
go get -u github.com/gregoryv/uncover/...
go test -coverprofile /tmp/c.out
uncover /tmp/c.out
স্ক্রিনশট
আপনি যদি ভিএসকোড ব্যবহার করছেন তবে এই কার্যকারিতাটি বক্সের বাইরে সমর্থিত হবে ( তবে ডিফল্টরূপে অক্ষম )
কেবল সংরক্ষণ + কভারেজ প্রতিবেদন পরীক্ষা চালু করুন
https://github.com/microsoft/vscode-go/wiki/On-Save-features
এমনকি এটি আপনার সম্পাদকটিতে প্রদর্শিত হবে যে কোন লাইনগুলি আচ্ছাদিত নয় যা কোন অতি কার্যকর।
কভারেজ রিপোর্ট →
ক) সমস্ত পরীক্ষা চালান এবং কভারেজ সক্ষম করুন -> go test ./... -coverprofile coverage.out
খ) স্বতন্ত্র ফাংশনগুলির পাশাপাশি সামগ্রিক কভারেজের জন্য কভারেজ পান → go tool cover -func coverage.out
গ) দেখুন লাইন আবৃত এবং বেশী আপনার পরীক্ষা → আওতায় পড়ে না go tool cover -html=cover.out -o coverage.html
। coverage.html
এখানে ব্রাউজারে উত্পন্ন ফাইলটি খুলুন এবং বিস্তারিত কভারেজের তথ্য বিশ্লেষণ করুন।
একটি দ্রুত এবং সহজ উপায় হ'ল অন্তর্নির্মিত গো দিয়ে আসা কভারেজ সরঞ্জামটি ব্যবহার করা:
test পরীক্ষা-কভার প্রোফাইলে যান সিপি.আউট // এক লাইনার শতাংশের ভিত্তিতে কভারেজটি নির্ধারণ করে
উপরের কমান্ডটি কার্যকর করার পরে, আপনি যদি কোডটি দৃশ্যত দেখতে চান (যেমন আচ্ছাদন বিবৃতি এবং মিস করা ইত্যাদি)
tool গো সরঞ্জামের কভার -html = cp.out
দ্রষ্টব্য: আপনি যে ফোল্ডারে কভারেজ দেখতে চান সেখানে উপরের কমান্ডগুলি কার্যকর করতে হবে
গাইয়া-ডকার / বেস-গো-বিল্ড ডকার চিত্র ব্যবহার করার চেষ্টা করুন ।
এটি একটি ডকার চিত্র যা আপনার কভারেজ তৈরির ও পরীক্ষার জন্য যা যা প্রয়োজন তা রয়েছে contains ডকারের ধারকের ভিতরে পরীক্ষা কভারেজ চালানো আপনার প্রকল্পের পরীক্ষার কভারেজ ফলাফলের সাথে .কভার ফোল্ডার তৈরি করে ।
docker run --rm -v "$PWD":$PROJECT_PATH -w $PROJECT_PATH $BUILDER_IMAGE_NAME /go/script/coverage.sh
পরীক্ষা কভারেজ স্ক্রিপ্ট সব প্রকল্পে চলমান 'ফোল্ডার ও জেনারেট করে, ভিতরে .cover প্রতিটি ফোল্ডারের জন্য junit এবং কভারেজ প্রতিবেদন ফোল্ডারের, এবং একটি সব প্রকল্পের কভারেজ প্রতিবেদন একত্রিত' পরীক্ষা।
কোডেকভ এমন একটি স্ক্রিপ্টেরও পরামর্শ দেয় যা কভারেজের ফলাফলগুলি সংগ্রহ করে: একাধিক ফাইল
গোলংয়ের জন্য পরীক্ষার কভারেজ
go get github.com/axw/gocov/gocov
go get -u gopkg.in/matm/v1/gocov-html
এটি সঠিকভাবে ইনস্টল করা আছে তা পরীক্ষা করুন এবং আপনার টার্মিনাল থেকে আপনার অ্যাক্সেস রয়েছে
টেস্ট কেস চালান
আপনি যদি পরীক্ষার কেসটি চালনা করেন তবে ফাইলটির উপর ভিত্তি করে .json ফাইলটি পুনর্নির্মাণ হবে আপনি এইচটিএমএল ফাইলে কোড কভারেজ রিপোর্ট পাবেন on
gocov test >your_Coverage_report.json
আপনার পরীক্ষার কেস হয়ে গেলে .json ব্যবহার করে .html ফাইলটিতে একটি প্রতিবেদন তৈরি করুন
gocov-html your_Coverage_report.json >your_Coverage_report.html
উল্লেখ
গো ল্যাং-এর জন্য GoTest কভারেজ সরঞ্জাম
বিকল্প পদ্ধতি
নেটিভ টেস্টের কভারেজ যান
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
go test -coverprofile <filename> <package name>