ctr*_*lor 220 .net c# unit-testing visual-studio
我有一些使用内置的测试Microsoft.VisualStudio.TestTools.UnitTesting,但无法让它们运行.
我正在使用visual studio 2012 ultimate.
我有两个项目的解决方案; 在测试方法和引用(版本10.0.0.0,运行时版本v2.0.50727)之前using Microsoft.VisualStudio.TestTools.UnitTesting,有一个测试,[TestClass]在类 [TestMethod]之前Microsoft.VisualStudio.QualityTools.UnitTestFramework.我试过dot-net framework 3.5,4和4.5其他人给出了重新定位错误.
我试图构建解决方案和项目.测试资源管理器的消息是"构建您的解决方案以发现所有可用的测试".单击"全部运行"以构建,发现和运行解决方案中的所有测试.
所以问题是:如何让visual studio找到测试?
也尝试过这样做:http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx但没有成功:当我被问到时,我陷入了开始部分的困境右键单击并选择create tests.没有create tests.
我有这个测试(它编译,但不会出现在测试资源管理器中):
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace tests {
[TestClass]
public class SimpleTest {
[TestMethod]
public void Test() {
Assert.AreEqual("a","a", "same");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我现在已经发现(见下面删除的答案),因为它位于共享驱动器上,但我还不知道如何绕过它.(关于安全设置的事情可能).
Our*_*mie 227
我有相同的症状,但在不同的情况下.
我不得不为Peter Lamberg的解决方案添加一个额外的步骤 - 清理您的解决方案/项目.
我的unittest项目针对x64.当我创建项目时,它最初的目标是x86.
切换到x64后,我的所有单元测试都消失了.
我不得不去测试菜单 - >测试设置 - 默认处理器架构 - > x64.
他们仍然没有露面.
做了一个.
仍然没有出现.
最后做了一个清洁
然后他们出现了.
我发现清洁解决方案和清洁在设置更改时获得解决方案非常有用.有时我必须走极端并删除obj和bin目录并进行重建.
Joe*_*ing 160
请将关键字public添加到您的类定义中.您的测试类目前在其自己的程序集之外不可见.
namespace tests {
[TestClass]
public class SimpleTest {
[TestMethod]
public void Test() {
Assert.AreEqual("a","a", "same");
}
}
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*erg 58
这有时会奏效.
检查"测试"菜单下的处理器体系结构是否与用于构建解决方案的处理器体系结
测试 - >测试设置 - >默认处理器架构 - > x86/x64
如其他帖子中所述,请确保打开"测试资源管理器"窗口.测试 - > Windows - >测试资源管理器
然后使用测试重建项目应该使测试显示在测试资源管理器中.
编辑:正如Ourjamie在下面指出的那样,做一个干净的构建也可能有所帮助.除此之外,还有一件事我遇到了:
在Configuration Manager中未选中"构建"复选框,以获取我在解决方案下创建的新测试项目.
转到Build - > Configuration Manager.确保为所有解决方案配置和解决方案平台检查了测试项目是否已构建复选框.
Moo*_*ght 18
根据我最近的经验,以上所有都不起作用.我的测试方法
public async void ListCaseReplace() { ... }
Run Code Online (Sandbox Code Playgroud)
没有出现,但编译得很好.当我删除async关键字时,在测试资源管理器中显示测试.这是async void一种"发射后遗忘"的方法.制定方法async Task,你将得到你的测试!
此外,没有将Test项目的配置设置为"Build"也会阻止测试显示.Configuration Manager>检查您的测试以构建.
Tar*_*nin 12
由于该项目是在原始海报所示的共享驱动器上.VS.NET在加载和运行测试程序集之前需要信任网络位置.阅读这篇博客文章.
要允许VS.NET加载网络共享的内容,需要将它们(共享)添加到受信任位置.要将位置添加到完整信任列表运行(显然根据您的环境进行修改):
caspol -m -ag 1.2 -url file:///H:/* FullTrust
Run Code Online (Sandbox Code Playgroud)
要验证或列出运行的现有受信任位置:
caspol -lg
Run Code Online (Sandbox Code Playgroud)
小智 10
我发现的一个问题是,如果解决方案在网络驱动器/网络位置/共享驱动器上运行,则在测试资源管理器中找不到测试(没有显示)
您可以通过添加环境变量来解决此问题.
COMPLUS_LoadFromRemoteSources并将其值设置为1
我收到了错误: "Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."
尝试以管理员身份运行Visual Studio.这对我有用.
还有另一个Stack Overflow帖子讨论了这个错误,同样的解决方案适用于他们.这个问题仍然存在.
我有同样的问题..在我的情况下,它是由私人财产 造成的TestContext.
将其更改为以下内容有助于:
public TestContext TestContext
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
清理并构建解决方案后(如@Ourjamie的回答中所述),受测试的测试类中的测试方法可在测试资源管理器中找到.
小智 6
尝试在网络共享上打开解决方案时遇到了同样的问题.在这种情况下,测试资源管理器不会检测到任何单元测试.解决方案原来是:
控制面板 - > Internet选项 - >"安全"选项卡 - >单击"内部网",将保存网络共享的服务器IP地址或主机名添加到"站点"列表中.
在这之后,我重新编译了解决方案,现在测试出现了.这应该与@BigT的答案非常相似.
用于解决一些常见测试问题的快速检查清单.确保:
public[TestClass]属性[TestMethod]属性如果这没有帮助,请尝试清理,重建解决方案并重新启动Visual Studio.
问题在于测试运行程序被配置为不从远程驱动器运行测试。当我将项目复制到本地驱动器时,它工作正常,但我需要它在共享驱动器上(不记得为什么)。
我读到它可以配置为从共享驱动器工作,但从未这样做过,因为当我发现该解决方案时,我已经切换到 Debian 上的 MonoDevelop。
| 归档时间: |
|
| 查看次数: |
117998 次 |
| 最近记录: |