ger*_*wry 63 c# unit-testing mstest vs-unit-testing-framework
我有一个具有以下结构的ac#解决方案:
mySolution
myProject
myProject.MSTests
References
Microsoft.VisualStudio.QualityTools.UnitTestFramework
sutMSTests.cs
Run Code Online (Sandbox Code Playgroud)
sutMSTests.cs:
[TestClass()]
public class sutMSTests
{
[TestMethod]
public void MyTest0()
{
Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(4, 2 + 2);
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试通过Test,Run,All Tests In Solution运行测试时,我在VS2008状态行上得到以下信息:
未运行任何测试,因为未加载任何测试或禁用所选测试.
测试,Windows,测试视图显示没有测试.
注意:我手动创建了测试(适用于xUnit.net),而不是使用Microsoft的向导.
我将手工创建的MSTest设置与我使用向导生成的另一个测试设置进行了比较,它们看起来非常相似.
问题:上述错误消息的最可能原因是什么?
编辑2010-02-25: 更多信息:
我右键单击Solution Items文件夹,然后选择Add,New Project,键入Test Projects,Test Documents :: Visual Studio Test Project模板.
新项目的默认设置不会检测并传递测试"TestMethod1".
但是,我的测试没有显示...所以我将我的测试方法复制并粘贴到默认的测试测试项目"TestProject1"中.
我的测试是在"TestProject"中检测到的,但不是在原始位置.
我仔细比较了"TestProject1"的文件,组织和设置与我手工创建的测试项目.
此时,我猜测某些设置是由Visual Studio Test Project模板制作的,不易检测到.
imo,手动创建测试项目就像使用Visual Studio Test Project模板创建测试项目一样容易.
请注意:我并不是说我反对使用Visual Studio Test Project模板; 对我来说,我喜欢理解窗帘背后是什么,因为这让我成为了一个更好的程序员.
Dan*_*n F 76
对于googlers而言另一个 - 这个问题原来是我的问题,而且令我尴尬地愚弄了我.确保您的测试项目设置为构建在您正在使用的任何解决方案配置中.如果没有构建测试组件,VS将无法在不存在的组件中找到任何测试,并且您将头撞到墙上一段时间:-)
Dan*_*n F 45
可能有点晚了,但这个问题很好,我想我会为未来的googlers抛出一些碎屑.
Bryan Cook建议在他的博客文章中检查ProjectTypeGuids,关于手动创建MS测试项目.显然,您需要的神奇GUID {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}适用于c#和{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}VB.有关详细信息,请参阅他的博文.
如果博客文章消失,您需要在csproj文件的主属性组中添加以下元素:
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Run Code Online (Sandbox Code Playgroud)
小智 10
Google员工的另一个想法就是那里.我的问题是试图让被忽略的测试再次运行.如果删除忽略标签,则会出现相同的MS错误消息.不会自动重新启用测试.本文将指导您完成最后一步. http://richallen.blogspot.com/2008/05/ms-test-re-enabling-ignored-tests.html
| 归档时间: |
|
| 查看次数: |
57597 次 |
| 最近记录: |