更新:添加2017年; VS2017使用与2015年相同的测试发现/运行器集成机制,因此可能出错的关键事项是相同的.
我已经阅读了为什么xUnit运行器没有找到我的测试,这涵盖了xUnit 永远无法找到你的测试但我的问题不同的原因 - 我相信我的测试没有任何微妙的变化; (他们在其他环境中工作过,这似乎只是我的机器) - Visual Studio 2015中的Visual Studio Test Runner [社区版]根本没有显示我的任何测试.我没有做任何令人兴奋的事情; 测试针对桌面上的xUnit.net v2.
我查看了"输出"窗口,在" 显示"选项卡的"输出"中的" 测试"下看不到任何内容.
我正在尝试在两台独立的Windows机器上将Android Studio从0.5.1更新到0.5.2,一台使用Windows 7 Pro 64位,另一台使用Windows 7 Enterprise 64位.
我得到了正常的更新提示:
...如果我选择"更新并重新启动",则会下载补丁并退出IDE,但随后会出现以下对话框:
我无法更改任何"解决方案"列条目.如果我单击"继续",我会收到如下所示的消息(图像和文本,因此其复制/粘贴/搜索友好):
Temp. directory: C:\Users\Sean\AppData\Local\Temp\
java.io.FileNotFoundException: C:\Program Files (x86)\Android\android-studio\lib\jsch.agentproxy.usocket-nc.jar (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at com.intellij.updater.Utils.copyStreamToFile(Utils.java:135)
at com.intellij.updater.CreateAction.doApply(CreateAction.java:52)
at com.intellij.updater.PatchAction.apply(PatchAction.java:140)
at com.intellij.updater.Patch$3.forEach(Patch.java:198)
at com.intellij.updater.Patch.forEach(Patch.java:248)
at com.intellij.updater.Patch.apply(Patch.java:194)
at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:86)
at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:77)
at com.intellij.updater.Runner.doInstallImpl(Runner.java:307)
at com.intellij.updater.Runner.doInstall(Runner.java:268)
at com.intellij.updater.Runner.access$000(Runner.java:18)
at com.intellij.updater.Runner$2.execute(Runner.java:258)
at com.intellij.updater.SwingUpdaterUI$7.run(SwingUpdaterUI.java:230)
at java.lang.Thread.run(Thread.java:744)
Run Code Online (Sandbox Code Playgroud)
当我点击"退出"时,Android Studio会重新打开,并告诉我更新仍然可用.
我之前在两台机器上使用相同的方法更新了Android Studio,没有任何问题.
由于我认为这是针对较新版本的Android Studio的某种错误,因此我在AOSP问题跟踪器上打开了问题67794.
编辑
我今天能够在两台机器上从0.5.2更新到0.5.3而不会遇到这个问题.我在以前的成功更新中看到了JetBrains安装程序的Windows安全提示,并且更新已成功完成,而无需启动具有提升权限的Android Studio.所以,似乎问题是0.5.1或0.5.2补丁特有的.
编辑
尝试从Android Studio 0.6.0更新到0.6.1时遇到类似的错误:
温度.目录:C:\ Users\barbeau\AppData\Local\Temp \
+ ----------------文件操作失败.这可能是由于文件被另一个应用程序锁定.请尝试关闭使用正在更新的文件的任何应用程序,然后按"重试".+ ----------------
com.intellij.updater.RetryException:无法在com的com.intellij.updater.BaseUpdateAction.replaceUpdated(BaseUpdateAction.java:40)中删除文件C:\ Program Files(x86)\ …
我正在整理一堆新的单元测试,作为CI工作一起运行.我使用vstest.console.exe而不是mstest.exe主要是因为它能够从几个框架运行测试,但现在焦点是几个xUnit dll.这些作业是作为Jenkins管道的一部分运行的.
我已经在几个开发盒上成功测试了所有内容,但到目前为止,烦人的测试发现在任何CI构建盒上都没有.这是在添加0.99.8 xUnit测试适配器vsix(也用0.99.7测试)之后.xUnit dll是使用2.0.0.2378 beta nuget版本的xUnit构建的.
我用最简单的dll复制了这些症状,使用一种公共测试方法,在我自己的盒子上工作正常,不在任何构建盒上工作.在Windows 2012上,部署环境非常简单,VS2012安装和xUnit测试适配器.
我通过vstest exe配置文件启用了TpTrace日志记录,一切看起来都很好.我想我正在寻找一种方法来进一步解决问题(可能是跟踪xUnit发现过程)或解决问题.我更喜欢保留使用vstest控制台以简化运行几个框架.
我也通过xUnit codeplex网站写了这个问题.
我已经查看了这篇SO帖子,但没有一个建议的解决方案在这里有意义.
我做了这样的nuget安装:
Install-Package xunit.runner.visualstudio -Version 2.2.0
Run Code Online (Sandbox Code Playgroud)
在我的测试项目上.
我有一个类似的测试:
public class When_Doing_Stuff_I_Want_To_Test
{
[Fact]
public void Can_Do_Stuff()
{
var result = DoStuff();
result.ShouldNotBeNull();
result.Success.ShouldBeTrue();
}
}
Run Code Online (Sandbox Code Playgroud)
虽然我已经做了很多VS重启,笔记本电脑重新启动,中间休息一天,VS 2017仍然无法发现我的测试:
我该怎么做才能解决这个问题并看看我的测试?
附录
我在4.6.1下工作,所以还没有Core.
关于相同主题的问题没有帮助:
所以有很多回合,没有一个帮助......
更新
我也无法使NUnit工作,也不会出现在测试资源管理器中.
更新2
我擦了我的项目并重新创建了这样的项目:
然后我复制了我的原始代码并添加了所有必要的参考,没有区别.
我对单元测试很新.我一直在http://channel9.msdn.com/Events/TechEd/Europe/2012/DEV214上关注在visual studio 2012中创建单元测试的过程.
测试不会开始.它会提示我"无法直接启动具有类库输出类型的项目.
要调试此项目,请将可执行项目添加到此解决方案,该项目引用库项目.将可执行项目设置为启动项目.
即使我将单元测试类代码附加到控制台程序,测试也不会启动,测试资源管理器也是空的.在视频中,它不需要任何正在运行的程序.这位女士只创建了一个类库,测试将运行.
我该怎么办?注意.鼠标右键菜单上没有"创建单元测试"
我有一个F#类库,其中包含使用NuGet安装的"xUnit.net"和"xUnit.net Runners"软件包.我有以下代码:
module XUnitTest
open Xunit
[<Fact>]
let Test () =
do Assert.True (1 = 2)
()
Run Code Online (Sandbox Code Playgroud)
当我运行xUnit GUI(NuGet添加到(projectdirectory)\ packages\xunit.runners.1.9.1\tools的xunit.gui.clr4.exe)并加载由该项目构建的程序集时,Test()方法出现,并在我按预期运行时失败.
但是,我无法让测试出现在VS 2012的测试资源管理器中,无论我重建,重启等多少次.如果我单击全部运行,弹出构建输出窗口但没有其他任何事情发生.
为此,我还安装了xUnit.net Extensions,但我不认为它们对我正在尝试做的事情是必要的.这也没有帮助.
如果我能提供更多信息,请告诉我,谢谢你的阅读!
按预期发现具有以下测试的测试类:
[Theory]
[AutoData]
public void MyDiscoveredTest() { }
Run Code Online (Sandbox Code Playgroud)
但是,缺少以下测试:
[Theory]
[AutoNSubstituteData]
public void MyMissingTest() { }
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我把 放在MyDiscoveredTest
后面 MyMissingTest
,那么MyDiscoveredTest
现在也丢失了。我尝试了 xUnit Visual Studio 运行程序和 xUnit 控制台运行程序,得到了相同的结果。
我的AutoNSubstituteData
属性在这里定义:
internal class AutoNSubstituteDataAttribute : AutoDataAttribute
{
internal AutoNSubstituteDataAttribute()
: base(new Fixture().Customize(new AutoNSubstituteCustomization()))
{
}
}
Run Code Online (Sandbox Code Playgroud)
一个相关的问题:由于AutoNSubstituteDataAttribute
上述似乎是一个相当常见的属性,我想知道为什么它不包含在 AutoFixture.AutoNSubstitute 中。同样有用的是InlineAutoNSubstituteDataAttribute
. 我应该提交这些请求请求吗?
使用的 Nuget 包版本:
AutoFixture 3.30.8
AutoFixture.Xunit2 3.30.8
AutoFixture.AutoNSubstitute 3.30.8
xunit 2.0.0
xunit.runner.visualstudio 2.0.0
xunit.runner.console 2.0.0
NSubstitute 1.8.2.0
我正在使用 Visual Studio 2013 Update 4 并面向 …
unit-testing ×4
c# ×3
xunit ×3
xunit.net ×2
.net ×1
android ×1
autofixture ×1
f# ×1
nsubstitute ×1
vstest ×1
xunit2 ×1