无法在Visual Studio 2012中调试unit testing项目

我找不到类似的post,所以我希望这不是重复的。

我有一个ac#类库,我正在尝试在Visual Studio 2012中运行unit testing。我在我的解决方案中添加了一个新的unit testing项目,并在那里添加了我的主项目作为参考。 我已将我的unit testing项目设置为启动项目。 当我尝试调试时,收到错误消息

无法直接启动具有类库的输出类型的项目。

要调试此项目,请向此解决方案添加可执行项目,该解决方案引用库项目。 将可执行项目设置为启动项目。

在此处输入图像描述

根据msdn的演练,我应该在调试时运行测试。 有什么想法吗? 这是我的unit testing代码:

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 //} } } 

您将需要以不同的方式调试它:

在此处输入图像描述

确保在创建包含测试的visual studio项目时使用了“unit testing项目”模板。 Visual Studio需要csproj标记中的一些元数据,现在如何执行类库。

您可以通过编辑记事本中的csproj文件来添加或确认它存在:

   {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}   

详细信息@ http://onlinecoder.blogspot.ca/2009/09/visual-studio-projects-project-type.html

现在它应该在Visual Studio中使用F5。 如果它仍然不起作用,请右键单击测试并单击“运行测试”或使用测试资源管理器(测试> Windows>测试资源管理器)