我有一个具有以下结构的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模板; 对我来说,我喜欢理解窗帘背后是什么,因为这让我成为了一个更好的程序员.
编辑: 注意,问题288805是类似的,但是,我特别询问MSTest如何选择默认测试顺序.请看这个问题的其余部分.谢谢Eilon 的链接.
我正在寻找遗留的MSTest项目.测试始终以相同的顺序运行.订单不是字母顺序,而是在两个*.cs TestMethod文件中的方法之间反弹.
我没有改变遗留代码的物理顺序.为方便起见,我为第一个测试的方法名称添加了"MSTest01",将第二个测试的方法名称"MSTest02"添加到了等等.
令我惊讶的是,TestMethod函数的执行顺序发生了变化; #3第一,#6第二,#5第三,等等.
当我从TestMethod函数名中删除"MSTestnn"字符串时,它们的执行顺序变回了先前的顺序,即第一个.cs文件中的一个测试,第二个.cs文件中的两个测试,第一个中的五个测试. cs文件,等等.
似乎文件位置可能不是一个因素,而TestMethod函数名称可能是一个因素.
问题:任何人都可以解释MSTest如何决定TestMethod函数的执行顺序?
C#调试配置的 Visual Studio调试器
项目设置
"设置编译应用程序的模式.
选择
Active(调试),<========
Debug,<========
Release,
All Configurations."
似乎Active(Debug)和Debug是两个独立的选择.
但是,MSDN库无法解释Active(Debug)和Debug之间的区别 .
这里没有信息:"C#调试配置的Visual Studio调试器项目设置"
我也找不到谷歌的任何解释.
问题:Active(Debug)和Debug
之间有什么区别 ?
visual-studio-2005 visual-studio-2010 visual-studio-2008 visual-studio
我已经编写了许多版本的Windows服务,并将它们安装在运行Server 2008 R2 Enterprise的32 GB的64位系统上.
我使用此配方创建服务:
http://msdn.microsoft.com/en-us/zt39148a.aspx
"演练:在组件设计器中创建Windows服务应用程序"
我在Win 7笔记本电脑上创建了.msi和相应的setup.exe(c#,vs2010 SP1,.NET 4).
在笔记本电脑上测试Windows服务后,我将.msi和setup.exe复制到win2008 R2 Enterprise服务器上的文件夹中(使用远程桌面复制和粘贴); 我使用服务器的控制面板进行卸载,右键单击.msi并选择Install,然后浏览安装向导.没问题.作品大部分时间.
安装可能持续15分钟或更长时间; 它永远不会结束; 最终一个对话框声明
"(?)安装程序不再响应."
选项[重试]或[取消].
此时,进度条尽可能短,在最左侧,在"请稍候......"的"P"下方.
单击" 重试 "无效.自从我单击" 重试"以来,已经过了30多分钟,并且进度条甚至没有提前像素.
(a)该服务在另一台服务器上安装没有任何问题,即Win 2008 R2网络版.
(b)如上所述,Windows服务在我的Win 7开发和测试环境中都安装并正常运行.
几周前,我无法从win 2008 R2 Enterprise服务器安装服务.我无法在控制面板/卸载中找到它,即使.msi声称它已安装,服务也继续出现在services.msc控制台中.即使禁用该服务也无济于事.出于这个原因,我克隆了代码,稍微更改了服务名称,并成功安装了已经运行的服务而没有任何问题.
今天发生了类似的事件,唯一的区别是我可以在控制面板卸载中看到该服务.因为它不会卸载,我尝试了同样的克隆技巧,但这次失败了.
下一步:使用上面的演练,我创建了一个不做任何Windows服务,并通过从原始c#项目文件导入我的客户端类使其变得有用.
该从根本上重新构建 Windows服务作为工程设计上我的笔记本电脑,但拒绝安装R2 Enterprise服务器上.
有任何想法吗?
谢谢,麻烦您了.
PS:我发布了这个,因为imho更可能是开发人员在将她/他的代码交给系统管理员之前可能遇到的问题.
顺便说一句,我找不到任何相关的东西; 通过谷歌同上.
一般来说,我仍然是一个测试新手的单位.
顺便说一句,你还可以看到其他论坛,如xUnit.net,等等这个问题,
因为它是我的一个重要问题.我提前为我的
交叉发布道歉; 你的意见对我来说非常重要,并不是
这个论坛的每个人都属于其他论坛.
我一直在寻找一个大的十年历史的遗留系统已超过700个单元测试有
最近写(700只是一个小小的开始).测试恰好用
MSTest 编写,但这个问题适用于所有测试框架AFAIK.
当我跑步时,通过vs2008"ALL TESTS",最后的计数只有七次测试.
这大约是迄今为止所写测试总数的1%.
更多信息:CodeMlex上提供了ASP.NET MVC 2 RTM源代码,包括其单元测试
; 这些单元测试也是用MSTest编写的,
尽管(一个不相关的事实)Brad Wilson后来加入了ASP.NET MVC团队
作为其高级程序员.所有2000多个测试都会运行,而不仅仅是少数.
问题:鉴于AFAIK单元测试的目的是识别
SUT中的破损,我是否认为"最佳实践"总是,
或者至少非常频繁地运行所有测试?
更新时间2010-05-22
首先,感谢所有提供优秀答案的人.您的答案证实了我的一般结论,即无论是否正在练习TDD(之前的测试)或经典的单元测试(测试之后),在每次本地重建之后运行所有单元测试都是最佳实践.
imho,这个问题有不止一个最好的答案,但是AFAIK SO让我只选择一个,所以为了公平起见,我给了Pete Johns一个复选标记,因为他是第一个并获得了最多的选票. SO社区.芬兰的Esko Luontola也给出了一个很好的答案(我希望他不会被埋在火山灰中)和两个非常好的联系,值得你花时间imho; 肯定与FIRST的链接对我来说是鼓舞人心的; AFAIK,.NET世界中只有xUnit.net提供"任何订单,随时".Esko的第二个链接是一个真正出色的92分钟视频"集成测试是一个骗局"由JB(Joe)Rainsberger(http://jbrains.ca提供,其中有更多内容值得我花时间).顺便说一句,Esko的博客也值得访问http:// orfjackal.
我不确定Windows内核如何处理线程计时...
我说的是DST以及影响Windows机器上时间的任何其他事件.
如果内核使用与用于一天中的时间相同的"时钟",那么何时
(a)有人手动更改一天中的时间,或
(b)与时间服务器的某些同步更改一天中的时间,或
(c)夏令时开始或结束,并且系统已配置为响应这两个DST事件,
等等,
睡觉的线程是否受到任何影响?即,内核是否以程序员无需的方式处理此类事件?
注意:对于非关键应用程序,这可能是谁关心的?情况.
对于关键应用,知道这个问题的答案是,因为重要的可能是一个必须为这样的异常情况进行编程.
谢谢
编辑:我想到了一个简单的测试,我在LINQPad 4中运行.
测试包括让线程进入睡眠状态,在线程进入睡眠状态的同时启动手动计时器,然后(a)将时间提前一小时,然后进行第二次测试,将时间移回两小时......在两次测试中,睡眠时间都没有受到影响.
底线:使用Thread.Sleep,无需担心影响一天中的时间的事件.
这是琐碎的c#代码:
Int32 secondsToSleep;
String seconds;
Boolean inputOkay;
Console.WriteLine("How many seconds?");
seconds = Console.ReadLine();
inputOkay = Int32.TryParse(seconds, out secondsToSleep);
if (inputOkay)
{
Console.WriteLine("sleeping for {0} second(s)", secondsToSleep);
Thread.Sleep(secondsToSleep * 1000);
Console.WriteLine("i am awake!");
}
else Console.WriteLine("invalid input: [{0}]", seconds);
Run Code Online (Sandbox Code Playgroud) 我在vs2008帮助,Google或SO中找不到任何有关此问题的帮助.
场景:
我正在查看vs2008 SP1中的源文件; Windows 2003 Server SP2标准版,1280x1024.
该文件的无关名称是index.aspx.
相关的是该文件只有65行代码.
印刷品不可读 - 小于4磅.它
垂直使用不到三分之一的vs2008文本窗口,并且
横向使用vs2008文本窗口的四分之一.
它不仅仅是index.aspx; 例如,具有142行的另一个文件
仅垂直填充vs2008文本窗口的大约3/4,
并且水平地小于vs2008文本窗口的四分之一.
可能的原因:
可能,但不一定,我发现相当于放大/缩小,如在
Microsoft Word 等产品中找到的.
但是,我已经探索了许多vs2008工具栏和其他
自定义选项,不幸的是我无法找到
如何摆脱这种混乱.
窗口,重置窗口布局对文本大小没有影响;
我的小文字大小没变.
问题:如何将vs2008文本大小缩小和缩小并恢复到正常大小?
在SO,我搜索"识别版本视觉工作室"但未能找到答案.
场景:
一种普遍接受的最佳做法是安装与正在使用的软件相关的所有服务包.
这也适用于Visual Studio 2008.在某些情况下,它是绝对必要的,例如,如果想要安装ASP.NET MVC v1.0 RTM,则需要VS2008 SP1.
对于大多数软件,"帮助,关于____"将显示版本,通常包括SP级别.
使用我的VS2008,我收到了很多信息,其中一些很清楚:
Microsoft .NET Framework
Verson 3.5 SP1
其中一些不太清楚:
Microsoft Visual Studio 2008
版本9.0.30279.1 SP
问题是很难判断VS2008 SP1是否实际安装过.
相同的信息似乎显示在具有vs2008 SP1的计算机上的"帮助","关于"以及尚未升级的计算机上.
同样,不同的版本,例如"开发"和"专业"通过"帮助","关于"显示相同的结果.
-
问题:如何正确识别她/他的vs2008版本级别?
.NET Framework,CLR和Visual Studio版本号如何相互关联?
我希望微软能够让这更容易.
@nos ...您的QFE是一个修补程序... http://en.wikipedia.org/wiki/QFE.
AFAIK,您可能已经应用了安全补丁.
我猜测9.0.30279.nnnn的"30279"部分表示SP1,"nnnn"是后续更新级别.
更多信息
我发现的挑战是轻松识别版本.
虽然这可能看起来很奇怪,但不幸的是
我缺少时间机器,至少有一次我确定
我已经拥有vs 2008 SP1但ASP.NET MVC无法安装.
那时我应用了MS SP1升级;
执行时,升级说它正在升级SP1!
将SP1升级到自身后,ASP.NET MVC确实安装了.
因此,我觉得这很混乱.
如果微软通过"帮助","关于","显示","
微软Visual Studio 2008
版本9.0.30279.nnnn SP1" ,那将会更加容易.
http://blogs.msdn.com/bharry/archive/2008/04/19/a-new-home-for-visual-studio-hotfixes.aspx
目前有169个hotix:
http://code.msdn.microsoft .com/Project/ProjectDirectory.aspx?TagName =修补程序
中至少有两个修复程序适用于vs2008 sp1:
http:
//code.msdn.microsoft.com/KB957912 :"KB957912 - …
题
如何以编程方式询问Win7以获取所有当前活动的全局键盘快捷键列表?
脚本
在许多版本的Windows中,有所谓的"Windows Key",又名"flag","start key" 等等.
微软有一个支持文章"键盘快捷键的Windows",列出下的部分很多这样的"Microsoft自然键盘按键",以及许多其他不涉及使用"Windows键",如全球Ctrl+ C,等等.
其他键盘快捷键可以偶然发现.例如,Windows Key + Left arrow或Right arrowWin7将聚焦窗口移动到显示器周围,并且使用多个监视器从一个显示器移动到下一个显示器.
在"选项"设置中还可以找到其他键盘快捷键,例如,Left- Ctrl+ Alt+ K是" Show KeePass Window " 的默认设置.
此外,可能还有硬件特定的键盘快捷键,例如,在我的笔记本电脑上,Fn+ F8切换扬声器静音.
被盗的键盘快捷键
当Snagit运行时,我已将其配置PrtSc为我的快捷方式,但是当Visual Studio(VS)运行时,它会PrtSc从Snagit窃取.
手动发现键盘快捷键的两种耗时方法
(a)通过仅打开桌面和几个窗口并尝试各种键组合,可以发现全局键盘快捷键.
(b)在VS中,可以通过在键盘快捷键窗口中尝试各种组合来发现许多VS键盘快捷键,其中,如果已经使用了组合,VS将通知一个关于该组合的当前使用情况.
想要发现所有当前活动的全局键盘快捷键的两个原因
(a)避免像锁定计算机的Windows Logo Key + 等恼人的事故L.
(b)确定哪些钥匙目前仍可供转让.
Visual Studio图像库 "包含出现在Microsoft Visual Studio,Microsoft Windows,Office系统和其他Microsoft软件中的应用程序图像.这组超过1,000个图像可用于创建与Microsoft软件在视觉上一致的应用程序."
但是,下载Visual Studio图像库是vs2012的.zip.
任何人都可以帮我找到vs2013版本的Visual Studio图像库