क्या मैं Visual Studio स्थापित किए बिना mstest.exe का उपयोग कर सकता हूं?


108

मैं बिल्ड सर्वर पर अपने यूनिट टेस्ट को चलाने के लिए mstest.exe का उपयोग करना चाहता हूं, लेकिन मैं बिल्ड सर्वर पर Visual Studio स्थापित नहीं करना चाहता। क्या मैं सिर्फ Visual Studio के बिना MSTest स्थापित कर सकता हूँ?


क्या आप थोड़ा और विस्तार दे सकते हैं। क्या संस्करण? सर्वर बनाएँ? आदि
रिचर्ड बैंकों

जवाबों:


168

विज़ुअल स्टूडियो के बिना mstest.exe चलाना संभव है।
विजुअल स्टूडियो आईएसओ के लिए एजेंटों में से एक को डाउनलोड करें और सर्वर पर टेस्ट एजेंट स्थापित करें:

विजुअल स्टूडियो 2017 (127MB डिस्क स्पेस, डाउनलोड से कम)
विजुअल स्टूडियो 2015 (128MB सेटअप, 2GB डिस्क स्पेस आवश्यक)
विजुअल स्टूडियो 2012 (224MB)
विजुअल स्टूडियो 2013 (287MB)
विजुअल स्टूडियो 2010 (515MB)

यह कमांड लाइन से mstest.exe को चलाने के लिए आवश्यक सब कुछ स्थापित करता है और दृश्य स्टूडियो की तुलना में बहुत हल्का है। ~ 500mb डाउनलोड और चारों ओर ~ 300mb बस परीक्षण एजेंट स्थापित करने के लिए अगर मैं सही ढंग से याद है।

अपडेट करें

वीएस 2017 से पुराने संस्करणों के लिए, यहां देखें:

https://www.visualstudio.com/vs/older-downloads/


MsAest.exe को TestAgent और TestController स्थापित करने के बाद कहाँ रखा गया है?
इवगेनी लेविन

3
C: \ Program Files \ Microsoft विज़ुअल स्टूडियो 11.0 \ Common7 \ IDE \
MSTest.exe

1
क्या विजुअल स्टूडियो 2008 के लिए कोई एजेंट है?
टॉमस क्यूब्स 25'14

3
विजुअल स्टूडियो 2012 टेस्ट एजेंटों को स्थापित करने के बाद मेरा समूह एक समस्या में चला गया। हमें लगता है कि इसने कुछ रजिस्ट्री मानों को संशोधित किया और परिणामस्वरूप विजुअल स्टूडियो 2010 सामान की गड़बड़ी हुई जो एक ही मशीन पर थी। खबरदार।
स्टीफन

1
2015 के लिए लिंक मर चुका है। टेस्ट एजेंटों को अब visualstudio.com/downloads/?q=agents
Onots

18

यह उत्तर विशेष रूप से Visual Studio 2017 से संबंधित है, और उत्तर हाँ है । कृपया ध्यान रखें, हालांकि, Microsoft (अभी भी) प्रासंगिक निष्पादनयोग्य ( MSBuild.exeऔर MSTest.exe) का पता लगाने के लिए किसी भी प्रकार की आधिकारिक एपीआई प्रदान नहीं करता है , इसलिए आप इन फाइलों का पता लगाने के लिए विभिन्न निर्देशिकाओं को पढ़ने और / या विभिन्न निर्देशिकाओं की जांच कर रहे हैं । आपको चेतावनी दी गई थी।

  • यदि आपको केवल अपनी इकाई परीक्षण परियोजना (ओं) का निर्माण करने की आवश्यकता है , तो पैकेज MSTest.TestFrameworkको उन परियोजना (नों) में स्थापित करें और Microsoft.VisualStudio.QualityTools.UnitTestFrameworkउनसे संदर्भ निकालें । अब आपको केवल Visual Studio 2017 Build Tools इंस्टॉल करना है और इनवाइट करना हैmsbuild.exe परफॉर्म करना है।
  • अगर आपको चलाने की जरूरत है अपना परीक्षण , तो चीजें मुश्किल हो जाती हैं:
    • सबसे सरल समाधान VS2017 सामुदायिक संस्करण (जिसमें msbuild और mstest दोनों शामिल हैं) स्थापित करना है - लेकिन मैं इस की वैधता के बारे में अनिश्चित हूं, और मैं वकील नहीं हूं, इसलिए सावधान रहें!
    • कानूनी रूप से सुरक्षित समाधान (और डिस्क स्थान के संदर्भ में बहुत हल्का), विजुअल स्टूडियो 2017 टेस्ट एजेंट स्थापित करना है और फिर विज़ुअल स्टूडियो 2017 के लिए बिल्ड टूल्स ( सटीक क्रम महत्वपूर्ण 1 है ); यह आपको देगा MSTest.exeऔर vstest.console.exeजिसे आप बाद में कॉल कर सकते हैं। ध्यान दें कि वास्तव में पता लगाना कि ये निष्पादक कहाँ रहते हैं, एक दर्द है, क्योंकि वे उसी निर्देशिका संरचना में मौजूद नहीं होंगे जैसे MSBuild.exeबिल्ड टूल्स में।

अंत में, और बहुत महत्वपूर्ण: यदि आप उपयोग करते हैं MSTest.TestFrameworkऔर अभी भी विजुअल स्टूडियो आईडीई के भीतर से परीक्षण खोजने और चलाने में सक्षम होने की आवश्यकता है, तो आपको भी आवश्यकता होगीMSTest.TestAdapter अपनी इकाई परीक्षण परियोजना (एस) में स्थापित ।

1: जबकि VS2017 साइड-बाय-इंस्टॉल का समर्थन करता है, यह एक एकल रजिस्ट्री कुंजी का उपयोग करता है जो केवल सबसे हाल ही में स्थापित रिकॉर्ड करता है। इसलिए, यदि आप परीक्षण एजेंट को अंतिम रूप से स्थापित करते हैं, तो कुंजी इसकी इंस्टॉल निर्देशिका को इंगित करेगी ... लेकिन टेस्ट एजेंट में शामिल नहीं है MSBuild.exe, इसलिए कोई भी कोड जो उस निष्पादन योग्य पथ का पता लगाने के लिए इस रजिस्ट्री कुंजी पर निर्भर करता है, विफल हो जाएगा। क्यों Microsoft टेस्ट एजेंट को बिल्ड टूल्स का वैकल्पिक हिस्सा नहीं बना सकता था (ताकि सभी EXE एक ही डायरेक्टरी पदानुक्रम में रहें) किसी का अनुमान है।


टेस्ट एजेंट विधि के माध्यम से स्थापित किया गया लेकिन mstest.exe अभी भी File extension specified '.webtest' is not a valid test extension.मेरे लिए विफल है।
ग्रेगरी सुवेलियन

अब कोई भी समस्या नहीं है - अन्य प्रश्न देखें, जैसे " प्रोग्रामेटिकली VS2017 इंस्टॉलेशन डायरेक्टरी ढूंढना " या " MSBuild.exe नहीं मिला, cmd.exe " जो इसका उपयोग करते हैं।
वाई हा ली

@AiHaLee vswhereकुछ भी बेहतर नहीं है, लेकिन आपको अभी भी एक धारणा बनानी है कि MSBuild VS इंस्टॉल डायरेक्टरी के सापेक्ष कहां स्थित है ... यदि (कब?) Microsoft उन किसी भी निष्पादनयोग्य को स्थानांतरित करने का निर्णय लेता है, तो यह धारणा अब मान्य नहीं है? । Microsoft MSBuild / MSTest / VSTest का रास्ता पाने के लिए एक प्रोग्रामेटिक तरीका क्यों नहीं बना सकता है या नहीं कर सकता (जैसा कि VS इनस्टॉल dir का विरोध है, जिसकी वास्तव में किसी को परवाह नहीं है) मुझसे परे रहता है।
इयान केम्प

हाँ, यह है / यह नहीं है वहाँ खेल कष्टप्रद है। मुझे यकीन है कि उनके पास इसके कारण हैं, लेकिन ....
वाई हा ली

@ ऊपर के अनुसार, मैंने परीक्षण एजेंट स्थापित किए हैं और उपकरण बनाए हैं, लेकिन मुझे त्रुटि प्राप्त हो रही है No test is available in C:\Users\..\Desktop\MyExeName.exe... । मैंने SO पर एक प्रश्न खोला है । यदि आपके पास कोई सुराग है, तो मैं आपकी मदद की सराहना करता हूं।
user1207289

4

मुझे लगता है कि आप शायद कर सकते हैं, लेकिन इसका निश्चित रूप से समर्थन नहीं किया गया है।

मुझे यह ब्लॉग लेख किसी ऐसे व्यक्ति के द्वारा लिखा गया है जो दावा करता है कि MSTest ने विजुअल स्टूडियो स्थापित किए बिना काम किया है।


हैकिंग शब्द के साथ किसी भी URL को वास्तव में प्रयास के मूल्य पर सवाल उठाने की आवश्यकता होती है यदि एमएस अपने कार्यान्वयन को बदलने का निर्णय लेता है तो आपका वातावरण अस्थिर हो सकता है और अप्रत्याशित चीजें प्रत्येक विंडोज अपडेट के साथ हो सकती हैं (हम नियमित अपडेट रखते हैं, सही?)।
रसेल

इस मामले में, यह संभावना नहीं लगती है कि विंडोज़ अपडेट हैक को तोड़ देगा। लेकिन mstest का नया संस्करण (उदाहरण के लिए, VS के नए संस्करण या सर्विस पैक के भीतर) अलग तरीके से काम कर सकता है।
डॉक्टर ब्राउन

@ रसेल - व्यक्तिगत रूप से मैं या तो एक अतिरिक्त वीएस लाइसेंस के लिए खोल दूंगा, या इसके बजाय केवल एनयूएनआईटी का उपयोग करूंगा।
जस्टिन

सभी उत्तरों के लिए धन्यवाद, मुझे बस एक अतिरिक्त वीएस लाइसेंस मिलेगा।
यांग-कु ०

1
उपरोक्त ब्लॉग पोस्ट के लेखक के रूप में, मैं यह प्रमाणित कर सकता हूं कि यह काम करता है, और यह कि इसे तोड़ने की अत्यधिक संभावना नहीं है। कम से कम VS2008 के लिए। मैंने VS2010 के लिए इस पर ध्यान नहीं दिया है। एमएसटीएस को वीएस में इतनी गहराई से एकीकृत किया जाना परीक्षण किट की बहुत बड़ी कमजोरी है, लेकिन मुझे नहीं लगता कि एमएस इसे ठीक करेगा, क्योंकि यह लोगों को टीम सिस्टम का उपयोग करने के लिए प्रोत्साहित करता है।
16

4

@ क्रोकपल्सर, आपको अपने बिल्ड सर्वर पर विज़ुअल स्टूडियो स्थापित करने की आवश्यकता है, लेकिन आपको अतिरिक्त लाइसेंस खरीदने की आवश्यकता नहीं है

वीएस स्थापित किए बिना काम करने के लिए निर्माण और एमएसटीस्ट के लिए बहुत अधिक निर्भरताएं हैं, और यह निश्चित रूप से समर्थित नहीं है।

जब तक बिल्ड शुरू करने वाले व्यक्ति के पास लाइसेंस है, तब तक आपको बिल्ड सर्वर के लिए एक की आवश्यकता नहीं है। यह 2005 के काले दिनों के बाद से मामला है, और जब तक संस्करण समानता है तब तक आप ठीक हैं।

यदि आपकी टीम में सभी के पास अंतिम है, तो आप इसे बिल्ड सर्वर पर इंस्टॉल करने के लिए स्वतंत्र हैं; लेकिन अगर आपकी टीम के किसी सदस्य के पास प्रीमियम है, तो आपको आदर्श रूप से बिल्ड सर्वर पर प्रीमियम स्थापित करना चाहिए। यह कोड कवरेज, टेस्ट इम्पैक्ट एनालिसिस और आर्किटेक्चर वैलिडेशन जैसे कई अन्य बिट्स को भी दूसरों के बीच सक्षम बनाता है।


संदर्भ के लिए इस ब्लॉग
Maslow

2

मुझे सिर्फ विजुअल स्टूडियो 2017 आईडीई को स्थापित किए बिना अपने सर्वर पर यह काम करना पड़ा। मेरी आवश्यकता थी

  • परियोजनाओं का निर्माण
  • परीक्षण परियोजनाओं का निर्माण
  • VSTest का उपयोग करके परीक्षण चलाएं (मेरा मानना ​​है कि यह MSTest के लिए एक समान प्रक्रिया है)

मुझे अन्य उत्तरों में बताई गई कुछ चीजों का एक संयोजन करना था और फिर यहाँ एक और भी ।

VS2017:

  1. BuildTools - यह Microsoft डाउनलोड पृष्ठ पर पाया जा सकता है , और फिर "Visual Studio 2017 के लिए उपकरण" पर नीचे स्क्रॉल करें -> "Visual Studio 2017 के लिए उपकरण बनाएँ"
  2. TestAgent - यह Microsoft डाउनलोड पृष्ठ पर पाया जा सकता है , और फिर "Visual Studio 2017 के लिए उपकरण" पर नीचे स्क्रॉल करें -> "Visual Studio 2017 के लिए एजेंट"
  3. दृश्य स्टूडियो इकाई परीक्षण dll को शामिल करने के लिए Nuget पैकेज - यह यहां पाया जा सकता है

चरण 3 निम्नलिखित समस्या को हल करने के लिए था:

"इस संदर्भ को हल नहीं कर सका। असेंबली का पता नहीं लगा सका" Microsoft.VisualStudio.QualityTools.UnitTestFramework ""

जिसके कारण तब:

"त्रुटि CS0234: प्रकार या नाम स्थान का नाम 'VisualStudio' नामस्थान 'Microsoft' में मौजूद नहीं है (क्या आप असेंबली संदर्भ याद कर रहे हैं?)

मुझे प्रोजेक्ट में कोई संदर्भ नहीं जोड़ना था। हालाँकि, vstest.console.exe का रास्ता TestAgent फ़ोल्डर में है (मेरे लिए यह "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ TestAgent \ Common7 \ IDE \ CommonExtra \ Microsoft \ TestWindow" है। )


1

यहाँ उन कदमों को बताया जा रहा है जो मुझे वी.एस.

  1. C: \ dev में 'Mestest' निर्देशिका फ़ोल्डर बनाया गया।
  2. C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE से 'Mstest' निर्देशिका में 'Mstest.exe' और 'Mstest.exe.config' की प्रतिलिपि बनाई गई
  3. Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll को 'Mestest' निर्देशिका में कॉपी करें
  4. 'Mstest' फ़ोल्डर में 'असेंबली' डायरेक्टरी बनाई
  5. सभी v11 Microsoft.VisualStudio.QualityTools। निकाला गया। C: \ Windows \ असेंबली से 'Mstest / विधानसभाओं' निर्देशिका तक dlls
  6. सभी 'v11' Microsoft.VisualStudio.QualityTools की प्रतिलिपि बनाएँ। .dlls और Microsoft.VisualStudio.TestTools। .d से C: \ Windows \ Microsoft.NET \ विधानसभा \ GAC_MSIL से 'Mestest / विधानसभाओं' के लिए
  7. सभी v11 Microsoft.VisualStudio.QualityTools की प्रतिलिपि बनाएँ। .dlls और Microsoft.VisualStudio.TestTools। .d से C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ PrivateAssemblies को 'Mestest / विधानसभाओं'
  8. 'Mstest.exe.config' की 'PrivatePath' विशेषता में 'असेंबली' जोड़ें
  9. 'HKEY_LOCAL_MACHINE / SOFTWARE / Wow6432Node / Microsoft / VisualStudio / 11.0 / Enterprise / QualityTools निर्यात करें और इसे हडसन बॉक्स पर लागू करें।
  10. C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE से QTAgent32.exe और QTAgent32.exe.config को 'MsTest' निर्देशिका में कॉपी करें
  11. 'QTAgent32.exe.config' के 'निजीपाठ' विशेषता में 'असेंबली' जोड़ें
  12. 'Msdia110.dll' को 'C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ Package \ Debugger' से 'MsTest / विधानसभाओं' में कॉपी करें
  13. 'Msdia110.dll' को c: /windows/syswow64/regsvr32.exe / i '../mstest/assemblies/msdia110.dll'( के साथ पंजीकृत करें। इसमें कोई त्रुटि थी, लेकिन किसी कारण से यह अभी भी काम कर रहा है। मैंने इसे एक युगल को चलाया। समय और विभिन्न regsvr32.exe संस्करणों की कोशिश की, इससे पहले कि मैंने जाँच की, लेकिन यह रजिस्ट्री में है)

  14. पर्यावरण चर 'MSTEST_HOME' जोड़ें और इसे 'c: \ dev \ mstest \' या अपने पथ पर सेट करें। मैंने अपनी बिल्ड स्क्रिप्ट में पर्यावरण चर का उपयोग किया।

MsTest निष्पादन त्रुटि डीबग करना:

'MsTest.exe.config' में जोड़ें

<system.diagnostics> 
  <trace autoflush="true" indentsize="4"> 
    <listeners> 
      <add name="EqtListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\MsTest.log" /> 
    </listeners> 
  </trace> 
  <switches> 
    <add name="EqtTraceLevel" value="Verbose" /> 
  </switches> 
</system.diagnostics>

0

यदि आपको mstest.exe webtest टूल चलाने की आवश्यकता है, तो आप Visual Studio Enterprise परीक्षण स्थापित कर सकते हैं और यह सुनिश्चित कर सकते हैं कि इसे कम से कम एक बार (बस इसे शुरू करें) जिसके तहत परीक्षण कुछ अतिरिक्त आवश्यकताओं के साथ नहीं किया जाएगा। इसलिए यदि आपका परीक्षण सिस्टम खाते के तहत चलता है तो आपको नीचे दिए गए कुछ का उपयोग करने की आवश्यकता है

PS C:\agent> psexec -s cmd.exe
C:\Windows\system32>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\mstest.exe"
Microsoft (R) Test Execution Command Line Tool Version 15.0.27520.0
Copyright (c) Microsoft Corporation. All rights reserved.

Please specify tests to run, or specify the /publish switch to publish results.
For switch syntax, type "MSTest /help"

0

.NET कोर उपयोगकर्ताओं के लिए MSTest की घोषणा की गई थी । dotnetउपकरण के साथ घोषणा का उपयोग उदाहरण है । मैंने खुद को नहीं समझा है कि स्टैंडअलोन को mstestनिष्पादन योग्य कैसे बनाया जाए ।


लिंक टूटा है :-(
जेम्स

1
@ जेम्स ने लिंक को ठीक किया
user7610
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.