Saya menemukan TestCase
fitur di NUnit cukup berguna sebagai cara cepat untuk menentukan parameter pengujian tanpa memerlukan metode terpisah untuk setiap pengujian. Apakah ada yang serupa di MSTest?
[TestFixture]
public class StringFormatUtilsTest
{
[TestCase("tttt", "")]
[TestCase("", "")]
[TestCase("t3a4b5", "345")]
[TestCase("3&5*", "35")]
[TestCase("123", "123")]
public void StripNonNumeric(string before, string expected)
{
string actual = FormatUtils.StripNonNumeric(before);
Assert.AreEqual(expected, actual);
}
}
DataRow()
, lihat: blogs.msdn.microsoft.com/devops/2016/06/17/…Jawaban:
Microsoft baru-baru ini mengumumkan "MSTest V2" (lihat artikel-blog ). Hal ini memungkinkan Anda untuk secara konsisten (desktop, UWP, ...) menggunakan
DataRow
atribut-!Sekali lagi, Sayangnya, Visual Studio Express 'Test Explorer tidak mengenali tes ini. Tapi setidaknya versi VS "penuh" sekarang mendukung fitur itu!
Untuk menggunakannya, cukup instal paket NuGet MSTest.TestFramework dan MSTest.TestAdapter (keduanya pra-rilis seperti yang sekarang).
Jawaban yang lebih lama:
Jika tidak harus tetap menggunakan MSTest dan Anda hanya menggunakannya untuk dapat menjalankan tes melalui Test Explorer
karena Anda hanya memiliki edisi Visual Studio Express, maka ini mungkin solusi untuk Anda:Ada ekstensi VsTestAdapter VSIX untuk dapat menjalankan pengujian NUnit melalui Test Explorer. Sayangnya, pengguna VS Express tidak dapat menginstal ekstensi ... Tapi untungnya, VsTestAdapter hadir dengan NuGet-Package biasa juga!
Jadi, jika Anda adalah pengguna VS Express, cukup instal VsTestAdapter NuGet-Package dan nikmati menjalankan tes / testcases NUnit Anda melalui Test Explorer!Sayangnya pernyataan di atas tidak benar. Meskipun sangat mungkin untuk menginstal paket melalui edisi Express, itu tidak berguna, karena tidak dapat menggunakan Test Explorer. Sebelumnya ada catatan tambahan pada versi lama TestAdapter, yang telah dihapus dari halaman deskripsi 2.0.0 :
sumber
Saya tahu ini adalah jawaban yang terlambat tetapi mudah-mudahan ini membantu orang lain.
Saya mencari solusi elegan ke mana-mana dan akhirnya menulisnya sendiri. Kami menggunakannya di lebih dari 20 proyek dengan ribuan pengujian unit dan ratusan ribu iterasi. Tidak pernah sekalipun ketinggalan.
https://github.com/Thwaitesy/MSTestHacks
1) Instal paket NuGet .
2) Mewarisi kelas pengujian Anda dari TestBase
3) Buat Properti, Bidang atau Metode, yang mengembalikan IEnumerable
4) Tambahkan atribut MSTest DataSource ke metode pengujian Anda, dengan menunjuk kembali ke nama IEnumerable di atas. Ini harus sepenuhnya memenuhi syarat.
Hasil Akhir: 3 iterasi seperti Sumber Data normal :)
sumber
Saya tahu ini adalah jawaban lain yang terlambat, tetapi di tim saya yang terkunci dalam menggunakan kerangka kerja MS Test, kami mengembangkan teknik yang hanya mengandalkan Jenis Anonim untuk menyimpan berbagai data pengujian, dan LINQ untuk mengulang dan menguji setiap baris. Ini tidak memerlukan kelas atau kerangka kerja tambahan, dan cenderung cukup mudah dibaca dan dipahami. Ini juga jauh lebih mudah untuk diterapkan daripada pengujian berbasis data menggunakan file eksternal atau database yang terhubung.
Misalnya, Anda memiliki metode ekstensi seperti ini:
Anda bisa menggunakan dan array Anonymous Type yang digabungkan ke LINQ untuk menulis tes seperti ini:
Saat menggunakan teknik ini, sebaiknya gunakan pesan yang diformat yang menyertakan data input di Assert untuk membantu Anda mengidentifikasi baris mana yang menyebabkan pengujian gagal.
Saya telah membuat blog tentang solusi ini dengan latar belakang dan detail lebih lanjut di AgileCoder.net .
sumber
Khlr memberikan penjelasan rinci yang bagus dan tampaknya pendekatan ini mulai bekerja di VS2015 Express untuk Desktop. Saya mencoba untuk meninggalkan komentar, tetapi kurangnya reputasi saya tidak memungkinkan saya untuk melakukannya.
Izinkan saya menyalin solusinya di sini:
Untuk menggunakannya, cukup instal paket NuGet MSTest.TestFramework dan MSTest.TestAdapter .
Salah satu masalahnya adalah
Jadi, hapus Microsoft.VisualStudio.QualityTools.UnitTestFramework dari referensi proyek.
Anda sangat dipersilakan untuk mengedit balasan asli dan menghapus yang ini.
sumber
MSTest memiliki atribut DataSource, yang memungkinkan Anda untuk memberinya makan tabel database, csv, xml, dll. Saya telah menggunakannya dan bekerja dengan baik. Saya tidak tahu cara untuk meletakkan data tepat di atas sebagai atribut seperti dalam pertanyaan Anda, tetapi sangat mudah untuk mengatur sumber data eksternal dan file dapat disertakan dalam proyek. Saya sudah menjalankannya satu jam sejak saya mulai, dan saya bukan ahli pengujian otomatis.
https://msdn.microsoft.com/en-us/library/ms182527.aspx?f=255&MSPPError=-2147217396 memiliki tutorial lengkap berdasarkan input database.
http://www.rhyous.com/2015/05/11/row-tests-or-paramerterized-tests-mstest-xml/ memiliki tutorial berdasarkan input file XML.
sumber