دوره زبان تخصصی برای برنامه‌نویسان (هدیه ویژه ثبت‌نام در دوره‌های متخصص) (فرصت محدود ⏰)
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ Mehdi Soli
مشکل در اجرا نشدن بنچ مارک و خطای [no test files]
Mehdi Soli حل شده توسط Mehdi Soli

سلام

پس از اجرا در خط فرمان با دستور go test -bench=. پیام [no test files] در خط فرمان داده می‌شود.

حتی به صورت ساده سعی کردم با یک مثال در اینترنت، با دستور  go test -bench=. بنچمارک رو اجرا کنم ، اما همچنان همین پیام داده می‌شود (مثلا نمونه زیر)

package main
import (
	"fmt"
	"testing"
)
func IntMin(a, b int) int {
	if a < b {
		return a
	}
	return b
}
func TestIntMinBasic(t *testing.T) {
	ans := IntMin(2, -2)
	if ans != -2 {
		t.Errorf("IntMin(2, -2) = %d; want -2", ans)
	}
}
func TestIntMinTableDriven(t *testing.T) {
	var tests = []struct {
		a, b int
		want int
	}{
		{0, 1, 0},
		{1, 0, 0},
		{2, -2, -2},
		{0, -1, -1},
		{-1, 0, -1},
	}
	for _, tt := range tests {
		testname := fmt.Sprintf("%d,%d", tt.a, tt.b)
		t.Run(testname, func(t *testing.T) {
			ans := IntMin(tt.a, tt.b)
			if ans != tt.want {
				t.Errorf("got %d, want %d", ans, tt.want)
			}
		})
	}
}
func BenchmarkIntMin(b *testing.B) {
	for i := 0; i < b.N; i++ {
		IntMin(1, 2)
	}
}

نکته دیگر اینکه خود VSCode آن‌ها را شناخته و به صورت جداگانه آن‌ها ران می‌کند اما وقتی در خط فرمان از دستوری که در ویدئو گفته شد استفاده می‌کنم، عملا بنچمارک اجرا نمی‌شود. 

عکس مرتبط را هم ضمیمه کردم (خب به نظر میاد که آپلودر عکس هم در سایت جدید درست کار نمی‌کنه :))) )

 

 

نکته دیگه اینکه کدهای مرتبط با بخش تست، در ریپو جناب آقای نعیمایی موجود نیست. خواستم مستقیما از آن‌ها استفاده کنیم ولی مثل اینکه از ریپو گیت هاب برداشته شده اند یا اینکه گذاشته نشده اند. 

 

Mehdi Soli ۲۳ آبان ۱۴۰۲، ۱۶:۰۰

سلام مجدد خدمت شما دوستان عزیز

خودم الان راه رو پیدا کردم. نیازی به گذاشتن مساوی نیست. به نظر میاد در ورژن 1.21.4 که دارم استفاده می‌کنم، شکل دستور باید به صورت زیر باشه

 

go test -bench . 
بهترین پاسخ
Mehdi Soli ۲۳ آبان ۱۴۰۲، ۱۶:۱۷

.

. ۱۶ بهمن ۱۴۰۲، ۱۷:۳۷

.

علی کیانپور ۱۷ بهمن ۱۴۰۲، ۰۶:۰۸