Visual Studio yüklemeden mstest.exe'yi kullanabilir miyim?


108

Birim testimi derleme sunucusunda çalıştırmak için mstest.exe kullanmak istiyorum, ancak derleme sunucusuna Visual Studio yüklemek istemiyorum. MSTest'i Visual Studio olmadan yükleyebilir miyim?


Biraz daha detay verebilir misin? Hangi versiyon? Sunucu oluştur? etc
Richard Banks

Yanıtlar:


168

Görsel stüdyo olmadan mstest.exe'yi çalıştırmak mümkündür.
Aşağıdaki Visual Studio ISO'ları için Aracılardan birini indirin ve Test Aracısını sunucuya yükleyin :

Visual Studio 2017 (127MB disk alanı, indirme için olandan daha az)
Visual Studio 2015 (128MB kurulum, 2GB disk alanı gerekir)
Visual Studio 2012 (224MB)
Visual Studio 2013 (287MB)
Visual Studio 2010 (515MB)

Bu, mstest.exe'yi komut satırından çalıştırmak için gereken her şeyi yükler ve görsel stüdyodan çok daha hafiftir. ~ 500mb indirme ve ~ 300mb civarında doğru hatırlıyorsam sadece test aracısını yüklemek için.

GÜNCELLEME

VS 2017'den daha eski sürümler için buraya bakın:

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


TestAgent ve TestController yüklendikten sonra MsTest.exe dosyası nereye yerleştirilir?
Evgeny Levin

3
C: \ Program Files \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ MSTest.exe
Foole

1
Visual Studio 2008 için herhangi bir aracı var mı?
Tomas Kubes

3
Grubum, Visual Studio 2012 Test Aracılarını yükledikten sonra bir sorunla karşılaştı. Bazı kayıt defteri değerlerini değiştirdiğini ve sonuç olarak aynı makinede bulunan Visual Studio 2010 şeylerini karıştırdığını düşünüyoruz. Dikkat.
stephen

1
2015 için bağlantı öldü. Test aracıları artık visualstudio.com/downloads/?q=agents
Onots

18

Bu yanıt, özellikle Visual Studio 2017 ile ilgilidir ve yanıt evettir . Bununla birlikte, Microsoft'un (hala) ilgili yürütülebilir dosyaları ( MSBuild.exeve MSTest.exe) bulmak için herhangi bir resmi API sağlamadığını lütfen unutmayın; bu nedenle, bu dosyaları bulmak için kayıt defteri anahtarlarını okurken ve / veya çeşitli dizinleri araştırırken takılıp kalırsınız . Uyarılmıştın.

  • Yalnızca ünite test projelerinizi oluşturmanız gerekiyorsa , paketi MSTest.TestFrameworkbu projelere yükleyin ve referansı Microsoft.VisualStudio.QualityTools.UnitTestFrameworkonlardan kaldırın . Artık tek ihtiyacınız olan, Visual Studio 2017 Derleme Araçlarını yüklemek msbuild.exeve derlemeyi gerçekleştirmek için çağırmaktır .
  • Eğer gerekiyorsa çalıştırmak yanı testlerinizi, şeyler yanıltıcıdır hale gelir:
    • En basit çözüm, VS2017 Community Edition'ı (hem msbuild hem de mstest içerir) kurmaktır - ancak bunun yasallığından emin değilim ve bir avukat değilim, bu yüzden dikkatli olun!
    • Yasal olarak daha güvenli bir çözüm (ve disk alanı açısından çok daha hafif), Visual Studio 2017 Test Aracısını ve ardından Visual Studio 2017 için Derleme Araçları'nı kurmaktır ( kesin sıralama önemlidir 1 ); bu size verecek MSTest.exeve vstest.console.exedaha sonra seslenebileceksiniz. Bu çalıştırılabilir dosyaların nerede bulunduğunu gerçekten bulmanın bir acı olduğunu unutmayın, çünkü bunlar MSBuild.exeBuild Tools ile aynı dizin yapısında olmayacaklar .

Son olarak ve çok önemli olarak: kullanıyorsanız MSTest.TestFrameworkve yine de testleri Visual Studio IDE içinden keşfedip çalıştırabilmeniz gerekiyorsa MSTest.TestAdapter, birim testi projelerinize de yüklenmeniz gerekir .

1: VS2017 yan yana yüklemeleri desteklerken, yalnızca en son yüklemeyi kaydeden tek bir kayıt defteri anahtarı kullanır. Bu nedenle, Test Aracısını en son yüklerseniz, anahtar yükleme dizinine işaret eder ... ancak Test Aracısı içermez MSBuild.exe, bu nedenle yürütülebilir dosyanın yolunu bulmak için bu kayıt defteri anahtarına dayanan herhangi bir kod başarısız olur. Microsoft, Test Aracısını neden Derleme Araçlarının isteğe bağlı bir parçası yapamadı (böylece tüm EXE'ler aynı dizin hiyerarşisinde yaşıyor) kimsenin tahmin edemeyeceği bir şey.


Test Aracısı yöntemi ile yüklendi ancak mstest.exe hala File extension specified '.webtest' is not a valid test extension.benim için başarısız oluyor .
Gregory Suvalian

Artık vswhere var - diğer sorulara bakın, örneğin " VS2017 kurulum dizinini programlama yoluyla bulma " veya onu kullanan " MSBuild.exe bulunamadı, cmd.exe ".
Wai Ha Lee

@WaiHaLee vswherehiç yoktan iyidir, ancak yine de MSBuild'in VS yükleme dizinine göre nerede bulunduğuna dair bir varsayımda bulunmanız gerekir ... eğer (ne zaman?) Microsoft bu yürütülebilir dosyaların herhangi birini yeniden konumlandırmaya karar verirse, bu varsayım artık geçerli değildir . Microsoft, MSBuild / MSTest / VSTest'e giden yolu (kimsenin gerçekten umursamadığı VS kurulum dizininin aksine) almak için programlı bir yol yaratamaması veya yaratmayacağı neden benden ötede kalıyor.
Ian Kemp

Evet, o / orada değil mi oyun can sıkıcı. Eminim sebepleri vardır, ama ....
Wai Ha Lee

@Ian Kemp Per yukarıda, test aracısını kurdum ve araçlar oluşturdum ancak hata alıyorum No test is available in C:\Users\..\Desktop\MyExeName.exe... . SO hakkında bir soru açtım . Herhangi bir fikrin varsa, yardımın için minnettar olurum.
user1207289

4

Muhtemelen yapabileceğinizi düşünüyorum, ancak kesinlikle desteklenmiyor.

MSTest'in Visual Studio yüklü olmadan çalıştığını iddia eden biri tarafından yazılmış bu blog makalesini buldum.


Hacking kelimesini içeren herhangi bir URL, MS uygulamasını değiştirmeye karar verirse, gerçekten çabanın değerini sorgulamayı gerektirir, ortamınız değişken olabilir ve her Windows güncellemesinde beklenmedik şeyler olabilir (düzenli güncellemeleri tutarız, değil mi?).
Russell

Bu durumda, bir Windows güncellemesinin hacklemeyi kırması pek olası görünmüyor. Ancak mstest'in daha yeni sürümü (örneğin, VS'nin daha yeni bir sürümü veya hizmet paketi içinde) farklı çalışabilir.
Doktor Brown

@Russell - Şahsen ya ekstra bir VS lisansı için para yatırırdım ya da bunun yerine sadece NUnit kullanırdım.
Justin

Tüm yanıtlar için teşekkürler, sadece ekstra bir VS lisansı alacağım.
yang-qu

1
Yukarıdaki Blog Gönderisinin yazarı olarak, işe yaradığını ve bozulma ihtimalinin yüksek olmadığını söyleyebilirim. En azından VS2008 için. VS2010 için buna bakmadım. MSTest'in VS'ye bu kadar derinlemesine entegre olması, test kitinin büyük bir zayıflığıdır, ancak MS'in, insanları Team System'ı kullanmaya teşvik ettiği için düzelteceğini düşünmüyorum.
foxxtrot

4

@crocpulsar, Visual Studio'yu derleme sunucunuza yüklemeniz gerekir, ancak ek bir lisans satın almanıza gerek YOKTUR .

Derleme ve MSTest'i VS yüklenmeden çalıştırmak için çok fazla bağımlılık var ve kesinlikle desteklenmiyor.

Oluşturmayı başlatan kişinin bir lisansı olduğu sürece, inşa sunucusu için bir lisansa ihtiyacınız yoktur. 2005'in karanlık günlerinden beri durum böyleydi ve baskı eşliği olduğu sürece sorun yok.

Ekibinizdeki herkes Ultimate'a sahipse, bunu derleme sunucusuna yüklemekte özgürsünüz; ancak ekip üyelerinizden birinin Premium'u varsa, o zaman ideal olarak derleme sunucusuna Premium yüklemelisiniz. Bu aynı zamanda Kod Kapsamı, Test Etki Analizi ve Mimari Doğrulama gibi diğer birçok biti de etkinleştirir.



2

Bunu, Visual Studio 2017 IDE'yi yüklemeden sunucularımda çalıştırdım. Benim ihtiyacım

  • Projeler oluşturun
  • Test projeleri oluşturun
  • VSTest kullanarak testleri çalıştırın (bunun MSTest için benzer bir süreç olduğuna inanıyorum)

Diğer cevaplarda belirtilen birkaç şeyin bir kombinasyonunu yapmak zorunda kaldım ve sonra da burada başka bir tane .

VS2017:

  1. BuildTools - Bu, Microsoft indirmeleri sayfasında bulunabilir ve ardından "Visual Studio 2017 için Araçlar" -> "Visual Studio 2017 için Derleme Araçları" seçeneğine ilerleyin
  2. TestAgent - Bu, Microsoft yüklemeleri sayfasında bulunabilir ve ardından "Visual Studio 2017 için Araçlar" -> "Visual Studio 2017 için Aracılar" seçeneğine gidin.
  3. Görsel stüdyo birimi test dll'sini içeren Nuget Paketi - Bu bulunabilir burada

3. Adım aşağıdaki sorunu düzeltmekti:

"Bu başvuru çözülemedi." Microsoft.VisualStudio.QualityTools.UnitTestFramework "derlemesi bulunamadı"

Bu da şunlara neden oldu:

"CS0234 hatası: 'VisualStudio' tür veya ad alanı adı 'Microsoft' ad alanında mevcut değil (bir derleme başvurusu eksik mi?)"

Projeye herhangi bir referans eklemem gerekmedi. Ancak, vstest.console.exe dosyasının yolu TestAgent klasöründe bulunur (benim için "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ TestAgent \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow" idi. )


1

Derleme sunucumun VS 2012'yi kurmadan MsTest'i çalıştırmasını sağlamak için attığım adımlar şunlardır:

  1. C: \ dev içinde 'Mstest' dizin klasörü oluşturuldu.
  2. 'Mstest.exe' ve 'Mstest.exe.config' C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE'den 'Mstest' dizinine kopyalandı
  3. Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll dosyasını 'Mstest' dizinine kopyalayın
  4. 'Mstest' klasöründe 'assemblies' dizini oluşturuldu
  5. C: \ Windows \ assembly'deki tüm v11 Microsoft.VisualStudio.QualityTools. *. Dll'leri 'Mstest / assemblies' dizinine çıkarıldı
  6. Tüm 'v11' Microsoft.VisualStudio.QualityTools kopyalayın. .dlls ve Microsoft.VisualStudio.TestTools. .dll dosyaları C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL'den 'Mstest / assemblies'e
  7. Tüm v11 Microsoft.VisualStudio.QualityTools kopyalayın. .dlls ve Microsoft.VisualStudio.TestTools. .dll, C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ PrivateAssemblies'den 'Mstest / assemblies'e
  8. 'Mstest.exe.config' içindeki 'privatePath' özniteliğine 'derlemeler' ekleyin
  9. 'HKEY_LOCAL_MACHINE / SOFTWARE / Wow6432Node / Microsoft / VisualStudio / 11.0 / Enterprise / QualityTools'u dışa aktarın ve hudson kutusuna uygulayın.
  10. QTAgent32.exe ve QTAgent32.exe.config'i C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE'den 'MsTest' dizinine kopyalayın
  11. "QTAgent32.exe.config" içindeki "privatePath" özniteliğine "derlemeler" ekleyin
  12. 'Msdia110.dll' dosyasını 'C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ Packages \ Debugger'dan' MsTest / assemblies'e kopyalayın
  13. 'Msdia110.dll' dosyasını c: /windows/syswow64/regsvr32.exe / i '../mstest/assemblies/msdia110.dll'(Bu bir hata attı, ancak nedense yine de çalıştı. Birkaç kez çalıştırdım kez denedim ve kontrol etmeden önce farklı regsvr32.exe sürümlerini denedim, ancak kayıt defterinde var)

  14. Ortam değişkenini 'MSTEST_HOME' ekleyin ve onu 'c: \ dev \ mstest \' olarak veya yolunuza ayarlayın. Derleme komut dosyamda ortam değişkenini kullandım.

MsTest yürütme hatası hata ayıklama:

'MsTest.exe.config'e ekleyin

<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 web test aracını çalıştırmanız gerekiyorsa, Visual Studio Enterprise deneme sürümünü yükleyebilir ve başka bir şey yapılmasına gerek kalmadan testin çalışacağı hesap altında en az bir kez çalıştırdığınızdan (yalnızca başlatın) emin olun. Dolayısıyla, testiniz Sistem hesabı altında çalıştırılırsa, aşağıdaki gibi bir şey kullanmanız gerekir

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

MSTest, .NET Core kullanıcıları için duyuruldu . Duyuru, dotnetaraç ile kullanım örneğine sahiptir . Bağımsız mstestçalıştırılabilir dosyayı nasıl alacağımı kendime düşünmedim.


Bağlantı koptu :-(
James

1
@James Bağlantıyı düzeltti
user7610
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.