পুনরায় পরীক্ষা করা বা পরীক্ষা ক্যাচিং অক্ষম করুন


106

সমস্যা:

আমি যখন একই গো টেস্ট চালাতাম তখন দ্বিতীয় রান মোটেও করা হয় না। ফলাফলগুলি প্রথম রান থেকে ক্যাশেডগুলি।

PASS    
ok      tester/apitests    (cached)

লিঙ্কগুলি

আমি ইতিমধ্যে https://golang.org/Cmd/go/#hdr- পরীক্ষা_ফ্লেগগুলি পরীক্ষা করে দেখেছি তবে সে উদ্দেশ্যে কোনও ক্লাইম পতাকা নেই।

প্রশ্ন:

সর্বদা পরীক্ষা চালাতে এবং পরীক্ষার ফলাফলের ক্যাশে না যাওয়ার জন্য গো পরীক্ষাকে জোর করার কোনও সম্ভাবনা আছে কি?

উত্তর:


161

টেস্টিং ফ্ল্যাগ ডক্সে বর্ণিত কয়েকটি বিকল্প রয়েছে :

  • go clean -testcache: সমস্ত পরীক্ষার ফলাফলের মেয়াদ শেষ হয়
  • আপনার পরীক্ষার সময় নন-ক্যাশেযোগ্য পতাকা ব্যবহার করুন। অহঙ্কারী উপায়টি ব্যবহার করা-count=1

এটি বলেছে যে, আপনার কোড বা টেস্ট কোডের পরিবর্তনগুলি ক্যাশেড পরীক্ষার ফলাফলকে অকার্যকর করে দেবে (স্থানীয় ফাইল বা পরিবেশের ভেরিয়েবলগুলি ব্যবহার করার সময় সেখানে বর্ধিত যুক্তি রয়েছে), সুতরাং আপনাকে নিজেই পরীক্ষার ক্যাশে অকার্যকর করার প্রয়োজন হবে না।


4
আপনি চলমান নির্ভরতার বিরুদ্ধে যেমন পরীক্ষা করছেন এমন ক্ষেত্রে এটি দরকারী যখন উদাহরণস্বরূপ এমন একটি ডাটাবেস যেখানে আপনি আপনার কোডটি নয় তবে নির্ভরতা সেটআপ / ছিন্ন করেন। দেখে মনে হচ্ছে ওপি একটি নন স্টাবড এপিআইয়ের বিরুদ্ধে পরীক্ষা করছিল যা তাদের প্রশ্নকে উত্সাহিত করেছিল।
জোয়াকিম

কেবলমাত্র নির্দিষ্ট পরীক্ষার জন্যই ক্যাশে পরিষ্কার করা সম্ভব?
নিকডামিলো

4
দ্রষ্টব্য যে go clean -testcache ./...খুব কাজ করে (একটি মনোরপো শীর্ষে)
ভাতাসাউরাস

এটিকে আরও ভাল করার জন্য আমি একটি সমস্যা খুলেছি: github.com/golang/go/issues/39056?ts=4
ওয়েস্টেম

23

Go11 এ, আমি GOCACHEমডিউলগুলি ব্যবহার করে ক্যাশে অক্ষম করতে পারিনি, আমি তার -count=1পরিবর্তে ব্যবহার করেছি :

go test -count=1

Go11 এর আগে:

GOCACHE=off go test

অথবা, পরীক্ষা ক্যাশে পরিষ্কার করুন এবং আবার পরীক্ষা চালান:

go clean -testcache && go test 

19

এখানেও GOCACHE=offউল্লেখ করা আছে


4
ব্যবহারের জন্য go 1.11মডিউল বৈশিষ্ট্যগুলির জন্য এবং থাকা GOCACHE=offত্রুটি দেয় go: cannot use modules with build cache disabled। প্রস্তাবিত ব্যবহার করা ভাল -count 1
zdebra

4
আপনি ঠিক বলেছেন, github.com/golang/go/issues/26809#issuecomment-410477084 অনুসারে GOCACHEধীরে ধীরে পর্যায়ক্রমে 1.12-এ যেতে হবে তাই এখন ব্যবহার go test -count=1 ...করা নিরাপদ পছন্দ।
soltysh

build cache is disabled by GOCACHE=off, but required as of Go 1.12
ফ্রান্সেসকো ক্যাসুলা

7

যেভাবে আমি এটি স্থির করেছি (আমি ম্যাকোজে ভিজুয়াল স্টুডিও কোডটি ব্যবহার করছি):

কোড> পছন্দসমূহ> সেটিংস

...সেটিংস পৃষ্ঠার ডানদিকে ক্লিক করুন

ক্লিক Open settings.json

হয়:

  1. আপনার সেটিংস.জসন ফাইলটিতে নিম্নলিখিত স্নিপেট যুক্ত করুন

    "go.testEnvVars": {
        "GOCACHE": "off"
    }
    
  2. go.testEnvVarsনিম্নলিখিতগুলি অন্তর্ভুক্ত করার মান পরিবর্তন করুন :"GOCACHE": "off"

4
Go 1.12 হিসাবে বিল্ড ক্যাশে প্রয়োজনীয়, সুতরাং গো এর GOCACHEসাম্প্রতিক সংস্করণগুলির সাথে সেটিংস কাজ করবে না। ভিএস কোডের একটি সমাধান "go.testFlags": ["-count=1"]সেটিংসে সেট করা।
আরমান্ড গ্রিললেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.