Bagikan melalui


Memecahkan masalah pengujian unit database SQL Server

Anda mungkin mengalami masalah berikut saat bekerja dengan pengujian unit SQL Server pada database.

Pengujian unit dan perubahan app.config diabaikan saat Anda menjalankan pengujian unit

Jika Anda mengubah app.config file dalam proyek pengujian, Anda harus membangun kembali proyek pengujian sebelum perubahan berlaku. Perubahan ini mencakup perubahan apa pun yang Anda buat app.config dengan kotak dialog Konfigurasi Pengujian SQL Server . Jika Anda tidak membangun kembali proyek pengujian, perubahan tidak diterapkan saat Anda menjalankan pengujian unit.

Penyebaran database ke target tak terduga saat Anda menjalankan pengujian unit

Jika Anda menyebarkan database dari proyek database saat menjalankan pengujian unit, database disebarkan dengan menggunakan informasi string koneksi yang ditentukan dalam konfigurasi pengujian unit Anda. Informasi koneksi yang ditentukan dalam properti Debug proyek database tidak digunakan untuk tugas ini, yang memungkinkan Anda menjalankan pengujian unit SQL Server terhadap instans yang berbeda dari database yang sama.

Waktu habis saat Anda menjalankan pengujian unit database

Jika pengujian unit database Anda gagal karena waktu habis, Anda dapat meningkatkan periode batas waktu dengan memperbarui app.config file dalam proyek pengujian Anda. Batas waktu koneksi, yang ditentukan pada string koneksi, menentukan berapa lama untuk menunggu ketika pengujian unit terhubung ke server. Batas waktu perintah, yang harus didefinisikan langsung dalam app.config file menentukan berapa lama untuk menunggu ketika pengujian unit menjalankan skrip Transact-SQL. Jika Anda memiliki masalah dengan pengujian unit yang berjalan lama, coba tingkatkan nilai batas waktu perintah dalam elemen konteks yang sesuai. Misalnya, untuk menentukan batas waktu perintah 120 detik untuk elemen PrivilegedContext , perbarui app.config sebagai berikut:

<SqlUnitTesting_VS2010>
    <DatabaseDeployment
        DatabaseProjectFileName="..\..\..\..\..\..\Visual Studio 2010\Projects\Database10\Database10\AdventureWorks.sqlproj"
        Configuration="Debug" />
    <DataGeneration ClearDatabase="true" />
    <ExecutionContext Provider="System.Data.SqlClient"
        ConnectionString="Data Source=(LocalDB)\Projects;Initial Catalog=AdventureWorks_Test;Integrated Security=True;Pooling=False"
        CommandTimeout="30" />
    <PrivilegedContext Provider="System.Data.SqlClient"
        ConnectionString="Data Source=(LocalDB)\Projects;Initial Catalog=AdventureWorks_Test;Integrated Security=True;Pooling=False"
        CommandTimeout="120" />
</SqlUnitTesting_VS2010>