Saya punya tes yang membutuhkan file XML untuk dibaca dan kemudian diurai. Bagaimana caranya agar file ini disalin ke folder uji coba setiap kali?
File XML disetel ke "Salin jika lebih baru" dan mode kompilasi "tidak ada" (karena ini sebenarnya bukan hal yang dapat dikompilasi)
visual-studio
mstest
Aaron Powell
sumber
sumber
Tampaknya jika Anda menyediakan file TestSettings untuk Solusi, Anda dapat menghapus centang pada opsi "Aktifkan penerapan" dan menghentikan mstest untuk mencoba menjalankan dari
...TestResults\...\out
folder yang tidak menyalin file tambahan Anda (kecuali jika Anda menjadikannya sebagai opsi penerapan) .Ini juga berguna jika Anda bergantung pada file tambahan yang ada dalam struktur folder yang dipertahankan karena item Deployment semuanya tampaknya disalin secara langsung (datar) ke dalam folder run sementara (keluar) jika Anda menggunakan opsi Deployment, Add Folder di TestSettings ( jawaban di atas menyarankan Anda dapat mempertahankan struktur jika Anda menambahkan setiap item sebagai DeploymentItem-nya sendiri).
Bagi saya itu bekerja dengan baik menjalankan tes langsung di Visual Studio (yaitu file tambahan saya dalam struktur mereka ditemukan dan digunakan oleh tes) karena saya telah membuat file TestSettings untuk alasan lain sejak lama (yang telah mengaktifkan penyebaran tidak dicentang), tetapi tidak ketika TeamCity menjalankan mstest untuk menjalankan pengujian karena saya belum menentukan bahwa file TestSettings harus digunakan.
Untuk membuat file TestSettings di Visual Studio, klik kanan pada Solution dan pilih New Item, dan pilih template TestSettings. Untuk menggunakan file TestSettings pada prompt perintah mstest.exe tambahkan opsi,
/testsettings:C:\Src\mySolution\myProject\local.testsettings
(atau tambahkan sebagai opsi baris perintah tambahan di TeamCity dengan jalur yang sesuai)sumber
Jawaban Preet digunakan untuk menyebarkan item untuk satu tes. Jika Anda ingin melakukannya di tingkat solusi, gunakan pengaturan .testrunconfig .
sumber
Solusi terbaik bagi saya adalah menggunakan setelan pengujian, terutama jika beberapa pengujian memerlukan file data yang sama.
Pertama buat file setelan pengujian, dan tambahkan item penerapan yang Anda perlukan (nama file atau folder):
Berjalan di studio visual, gunakan "pilih File Pengaturan Tes" dari menu "Tes \ Pengaturan Tes" untuk memilih pengaturan tes baru
Menjalankan mstest, gunakan parameter / testsettings agar mstest menggunakan setelan pengujian Anda.
sumber
Anda dapat menentukan DeploymentItem di kelas yang menyimpan metode dengan atribut AssemblyInitialize. Kemudian Anda yakin bahwa file tersebut disalin terlepas dari tes mana yang Anda jalankan.Sayangnya, atribut DeploymentItem dijalankan hanya pada kelas yang berisi pengujian yang Anda jalankan. Jadi jika Anda memiliki 10 kelas pengujian yang menggunakan kumpulan file yang sama, Anda harus menambahkan atribut ke semuanya.
Juga menemukan bahwa perubahan dalam file * .testsettings tidak secara otomatis di-refresh di Visual Studio. Oleh karena itu, setelah menambahkan file / folder ke dalam penerapan di setelan pengujian, Anda harus membuka kembali file solusi dan kemudian menjalankan pengujian.
sumber
Dalam Visual Studio 2012, vstest.console.exe (pelari pengujian bawaan) berjalan dengan output dir sebagai lintasan saat ini. Ini berarti bahwa Anda hanya perlu menyertakan item dalam solusi Anda dengan properti 'Salin selalu' atau 'Salin jika lebih baru' untuk digunakan dalam pengujian Anda. Anda tidak memerlukan atribut DeploymentItem untuk kasus umum. Hal yang sama berlaku saat menjalankan vstest.console.exe dari baris perintah di dalam direktori output / test Anda.
Ada beberapa kasus di mana folder terpisah digunakan, salah satunya adalah saat Anda menggunakan atribut DeploymentItem. Lihat di sini untuk informasi lebih lanjut.
sumber