NUnit memiliki fitur yang disebut Nilai, seperti di bawah ini:
[Test]
public void MyTest(
[Values(1,2,3)] int x,
[Values("A","B")] string s)
{
// ...
}
Ini berarti bahwa metode pengujian akan berjalan 6 kali:
MyTest(1, "A")
MyTest(1, "B")
MyTest(2, "A")
MyTest(2, "B")
MyTest(3, "A")
MyTest(3, "B")
Kami menggunakan MSTest sekarang, adakah yang setara untuk ini sehingga saya dapat menjalankan tes yang sama dengan beberapa parameter?
[TestMethod]
public void Mytest()
{
// ...
}
Jawaban:
Sayangnya tidak didukung di MSTest. Rupanya ada model ekstensibilitas dan Anda bisa menerapkannya sendiri . Pilihan lain adalah menggunakan tes berbasis data .
Pendapat pribadi saya akan tetap dengan NUnit meskipun ...
EDIT: Pada Visual Studio 2012, pembaruan 1, MSTest memiliki fitur serupa. Lihat jawaban @ McAden di bawah ini.
sumber
EDIT 4 : Sepertinya ini selesai di MSTest V2 17 Juni 2016: https://blogs.msdn.microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with-mstest- v2 /
Jawaban Asli :
Pada sekitar seminggu yang lalu di Visual Studio 2012 Pembaruan 1 sesuatu yang serupa sekarang mungkin:
EDIT : Tampaknya ini hanya tersedia dalam proyek pengujian unit untuk WinRT / Metro . Kekecewaan
EDIT 2 : Berikut ini adalah metadata yang ditemukan menggunakan "Go To Definition" dalam Visual Studio:
EDIT 3 : Masalah ini diangkat dalam forum UserVoice Visual Studio. Status Pembaruan Terakhir:
https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/3865310-allow-use-of-datatestmethod-datarow-in-all-unit
sumber
Fitur ini dalam pra-rilis sekarang dan berfungsi dengan VS 2015.
Sebagai contoh:
sumber
Karena tidak ada yang menyebutkan - tidak persis sama dengan atribut NUnit
Value
(atauTestCase
), tetapi MSTest memilikiDataSource
atribut, yang memungkinkan Anda untuk melakukan hal serupa. Anda dapat menghubungkannya ke database atau file XML - tidak semudah fitur NUnit, tetapi melakukan tugasnya.sumber
MSTest memiliki atribut kuat yang disebut DataSource , menggunakan ini Anda dapat melakukan tes data didorong saat Anda bertanya. Anda dapat memiliki data pengujian dalam XML, CSV atau dalam database. Berikut adalah beberapa tautan yang akan memandu Anda
http://visualstudiomagazine.com/articles/2009/09/15/unit-testing-with-vsts2008-part-3.aspx http://msdn.microsoft.com/en-us/library/ms182527.aspx
http: //msdn.microsoft.com/en-us/library/ms243192.aspx
Semoga ini bisa membantu Anda.
sumber
Ini sangat sederhana untuk diterapkan - Anda harus menggunakan
TestContext
properti danTestPropertyAttribute
.Contoh
EDIT:
Saya menyiapkan beberapa metode ekstensi untuk menyederhanakan akses ke
TestContext
properti dan bertindak seperti kami memiliki beberapa kasus uji. Lihat contoh dengan memproses properti uji sederhana di sini:dan contoh dengan membuat objek tes yang kompleks:
Lihatlah metode ekstensi dan set sampel untuk lebih jelasnya.
sumber
Ada, tentu saja, cara lain untuk melakukan ini yang belum dibahas dalam utas ini, yaitu dengan cara pewarisan kelas yang berisi TestMethod. Dalam contoh berikut, hanya satu TestMethod telah didefinisikan tetapi dua test case telah dibuat.
Di Visual Studio 2012, itu menciptakan dua tes di TestExplorer:
DemoTest_A12_B4.test
sumber
MsTest tidak mendukung fitur itu tetapi Anda dapat menerapkan atribut Anda sendiri untuk mencapainya. lihat di bawah ini:
http://blog.drorhelper.com/2011/09/enabling-parameterized-tests-in-mstest.html
sumber
Saya tidak dapat
DataRowAttribute
mengaktifkan The di Visual Studio 2015, inilah yang akhirnya saya lakukan:Solusi sebenarnya di sini adalah dengan hanya menggunakan NUnit (kecuali Anda terjebak di MSTest seperti saya dalam contoh khusus ini).
sumber