Tidak dapat men-debug proyek pengujian unit di Visual Studio 2012

Saya tidak dapat menemukan postingan serupa dengan ini, jadi saya harap ini bukan duplikat.

Saya memiliki perpustakaan kelas c# tempat saya mencoba menjalankan pengujian unit di Visual Studio 2012. Saya telah menambahkan Proyek Uji Unit baru ke solusi saya, dan menambahkan proyek utama saya sebagai referensi di sana. Saya telah menetapkan proyek pengujian unit saya sebagai Proyek Startup. Saat saya mencoba melakukan debug, saya mendapat pesan kesalahan

Sebuah proyek dengan Tipe Output dari Perpustakaan Kelas tidak dapat dimulai secara langsung.

Untuk men-debug proyek ini, tambahkan proyek yang dapat dieksekusi ke solusi ini yang mereferensikan proyek perpustakaan. Tetapkan proyek yang dapat dieksekusi sebagai proyek startup.

masukkan deskripsi gambar di sini

Menurut panduan di msdn, pengujian seharusnya dijalankan saat saya tekan debug. Ada pemikiran? Ini kode pengujian unit saya:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Common;
using Messages;

namespace MessageUnitTests
{
    [TestClass]
    class RegistrationTester
    {
        [TestMethod]
        public void RegistrationRequest_TestConstructorsAndFactories()
        {
            RegistrationRequest rr1 = new RegistrationRequest("myhandle");
            Assert.AreEqual("myhandle", rr1.Handle);

            rr1 = new RegistrationRequest("longHandle-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789'|;:',.=-_+!@#$%^&*()");
            Assert.AreEqual("longHandle-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789'|;:',.=-_+!@#$%^&*()", rr1.Handle);

            rr1 = new RegistrationRequest("");
            Assert.AreEqual("", rr1.Handle);

            rr1 = new RegistrationRequest(null);
            Assert.AreEqual(null, rr1.Handle);

            rr1 = new RegistrationRequest("myhandle");
            ByteList bytes = new ByteList();
            rr1.Encode(bytes);

            RegistrationRequest rr2 = RegistrationRequest.Create(bytes);
            Assert.IsNotNull(rr2);
            Assert.AreEqual(rr1.IsARequest, rr2.IsARequest);
            Assert.AreEqual(rr1.MessageNr.ProcessId, rr2.MessageNr.ProcessId);
            Assert.AreEqual(rr1.MessageNr.SeqNumber, rr2.MessageNr.SeqNumber);
            Assert.AreEqual(rr1.ConversationId.ProcessId, rr2.ConversationId.ProcessId);
            Assert.AreEqual(rr1.ConversationId.SeqNumber, rr2.ConversationId.SeqNumber);
            Assert.AreEqual(rr1.RequestType, rr2.RequestType);
            Assert.AreEqual(rr1.SessionId, rr1.SessionId);
            Assert.AreEqual(rr1.Handle, rr2.Handle);
        }

        //[TestMethod]
        //public void RegistrationRequest_EncodingDecoding()
        //{
        //    Message m1 = new RegistrationRequest("myhandle");
        //    m1.MessageNr = MessageNumber.Create(10, 14);
        //    m1.ConversationId = MessageNumber.Create(10, 12);
        //    ByteList bytes = new ByteList
        //}
    }
}

person Matt    schedule 26.09.2012    source sumber


Jawaban (2)


Anda ingin men-debugnya dengan cara berbeda:

masukkan deskripsi gambar di sini

person Gromer    schedule 26.09.2012
comment
Saya melihat penjelajah tes, tidak menunjukkan tes apa pun kepada saya. Apakah ada hal lain yang perlu saya lakukan agar tes tersebut muncul di penjelajah tes? - person Matt; 26.09.2012
comment
Saya rasa tidak, karena Anda menggunakan templat pengujian Unit saat menambahkan proyek. Bagaimana jika Anda mengklik kanan pada tes? Apakah Anda mendapatkan opsi untuk menjalankan tes yang dipilih? Saya belum banyak menggunakan VS2012, jadi saya tidak 100% familiar dengannya. - person Gromer; 26.09.2012
comment
Tidak juga - inilah yang saya lihat. i.imgur.com/cyAoa.png edit: Rupanya saya gagal memposting gambar. Ketika saya mengklik Jalankan Tes, saya mendapatkan pesan Build Berhasil di bilah status bawah dan tidak lebih jauh lagi. - person Matt; 26.09.2012
comment
Mengklik itu memberi saya hasil yang sama seperti Jalankan Tes. Ini adalah gambar yang benar-benar menunjukkan test explorer juga. i.imgur.com/mmtX8.png - person Matt; 26.09.2012
comment
Klik tab uji coba di bagian bawah. - person Gromer; 26.09.2012
comment
Dapatkan itu muncul dengan mengaktifkan windows di menu View yang tampak menjanjikan. Tampaknya tidak berguna pada saat ini. i.imgur.com/9ZDiZ.png - person Matt; 26.09.2012
comment
Saya menginstal VS2010 dan membuat ulang proyeknya. Saat debug, pengujian unit berjalan dan lolos. Sepertinya saya akan menganggapnya sebagai VS2012 yang bermasalah untuk saat ini. Terima kasih atas bantuan Anda! - person Matt; 26.09.2012
comment
Saya mengalami masalah yang sama - tes tidak muncul di Daftar Tes - person Doguhan Uluca; 01.10.2012
comment
Saya menemukan masalah saya, metode saya async void, tetapi harus tugas async agar menjadi metode pengujian yang valid. - person Doguhan Uluca; 01.10.2012
comment
Seseorang harus menandai jawaban ini sebagai jawaban yang benar untuk pertanyaan ini. - person Eido95; 10.08.2016

Pastikan Anda menggunakan templat "proyek pengujian unit" saat membuat proyek studio visual yang berisi pengujian Anda. Visual studio memerlukan beberapa metadata di markup csproj untuk mengetahui cara menjalankan perpustakaan kelas.

Anda dapat menambahkannya atau mengonfirmasi keberadaannya dengan mengedit file csproj di notepad:

<Project>
 <PropertyGroup>
  <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
 </PropertyGroup>
</Project>

Detail @ http://onlinecoder.blogspot.ca/2009/09/visual-studio-projects-project-type.html

Sekarang ini seharusnya bekerja dengan F5 di Visual Studio. Jika masih tidak berhasil, klik kanan pada tes dan klik 'jalankan tes' atau gunakan test explorer (Test > Windows > Test Explorer)

person Kenn    schedule 11.12.2012