问题标签 [vstest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2012 - 为 vstest.console.exe 指定结果文件名
可能是一个愚蠢的问题,但有人知道如何指定VSTEST.Console.exe 运行的输出文件名吗?我的命令行如下:
在运行结束时,控制台中出现以下内容:
我尝试使用.runsettings文件来指定输出位置,但这似乎只控制输出目录,而不是输出文件。还没有发现任何其他似乎可以控制它的东西。
我想解析 TRX 文件并从中生成报告(这已经可以了,但是如果我无法指定 TRX 文件的输出路径,我将不知道从脚本中的何处获取它!)
我必须在这里遗漏一些东西......
mstest - 如何在第一次失败时停止 MsTest 测试的执行?
我们正在运行每晚构建,最终使用 MsTest 框架运行我们所有的 UnitTest。
我们必须有 100% 的通过率,所以如果一个失败了,那么运行另一个没有意义;因此,我们希望在第一次失败的测试中停止执行。
无论如何我们可以做到吗?
java - 远程执行 vstest.console.exe 导致退出代码:559038737
我们正在尝试通过从 Java 中调用 vstest.console.exe(使用 Apache 的公共库)在远程 Windows 机器上运行单元测试。
在执行期间,我们看到以下日志:
值“-559038737”是命令的退出代码,表明它已失败。
“vstest.console.exe testProject.dll”直接在命令行上运行时按预期执行。我们还尝试执行 Java 命令,该命令在内部调用该命令并且也按预期工作。
为了调试问题,我们尝试了以下方法:
- 将 stdout 和 stderr 重定向到一个文件以查看是否有一些附加信息。
- 将堆大小增加到 1024m。
都没有帮助。
我可以尝试进一步调试此问题吗?
exception - 如何使用 Vstest.console.exe 和 Moq 避免 SerializationException 警告
我有一个带有相应单元测试项目的 .NET 3.5 项目。
首先,自从 VS 2013 更新以来,我无法再使用 MSTest 运行测试项目。我了解到vstest.console.exe
是执行测试的新首选方式。
vstest.console.exe
尽管如此,在执行 550 个单元测试的测试运行期间,它们都成功了,我的控制台收到了大量以下异常的垃圾邮件:
我不知道我做错了什么。我只能猜测,因为执行了测试in Isolation
模式(可能是.NET Framework 3.5的原因),它需要在应用程序域之间传输一些对象,而这里会出现这些异常。
我的问题是:为什么找不到程序集?Moq.dll 就在我的单元测试程序集旁边。在测试运行期间,我可以做些什么来防止这数百条异常消息?
更新:
我被要求同时运行融合记录器,它给了我以下信息:
现在,我在问为什么它不使用我的测试项目提供的程序集。我无法将 复制Moq.dll
到这些路径中的任何一个,因为我在同一测试运行中运行多个测试项目,这些测试项目使用某些程序集的不同版本,并且我只能在此处提供一个特定版本。
.net - 切换到 VSTest 后,无法将类型为“System.__ComObject”的 COM 对象转换为接口类型“Microsoft.Runtime.Hosting.IClrStrongName”
我们最近将我们的自动化单元测试从 MSTest 切换到 VStest。在切换几个单元测试开始失败后,给出以下错误消息,
测试方法 Domain.Model.IntegrationTests.Documents.DocumentFilesRepositoryTest.Delete_file_Page_not_shared_can_delete 抛出异常:
System.InvalidCastException:无法将“System.__ComObject”类型的 COM 对象转换为接口类型“Microsoft.Runtime.Hosting.IClrStrongName”。此操作失败,因为 IID 为“{9FD93CCF-3280-4391-B3A9-96E1CDE77C8D}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:未注册接口(来自 HRESULT 的异常:0x80040155)。
结果堆栈跟踪:
在 System.StubHelpers.StubHelpers.GetCOMIPFromRCW(对象 objSrc,IntPtr pCPCMD,IntPtr& ppTarget,布尔& pfNeedsRelease)在 Microsoft.Runtime.Hosting.IClrStrongName.StrongNameGetPublicKey(字符串 pwzKeyContainer,字节 [] pbKeyBlob,Int32 cbKeyBlob,IntPtr& ppbPublicPubKeyB) Microsoft.Runtime.Hosting.StrongNameHelpers.StrongNameGetPublicKey(String pwzKeyContainer, Byte[] bKeyBlob, Int32 cbKeyBlob, IntPtr& ppbPublicKeyBlob, Int32& pcbPublicKeyBlob) 在 System.Reflection.StrongNameKeyPair.ComputePublicKey() 在 System.Reflection.StrongNameKeyPair.get_PublicKey() 在 System. Reflection.Emit.AssemblyBuilder..ctor(AppDomain 域,AssemblyName 名称,AssemblyBuilderAccess 访问权限,字符串目录,证据证据,PermissionSet requiredPermissions,PermissionSet optionalPermissions,PermissionSet deniedPermissions, StackCrawlMark& stackMark, IEnumerable'1 unsafeAssemblyAttributes, SecurityContextSource securityContextSource) at System.Reflection.Emit.AssemblyBuilder.InternalDefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet deniedPermissions, StackCrawlMark& stackMark, IEnumerable '1 unsafeAssemblyAttributes, SecurityContextSource securityContextSource) at System.AppDomain.InternalDefineDynamicAssembly(AssemblyName name, >AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet >requiredPermissions, PermissionSet optionalPermissions, PermissionSet deniedPermissions, >StackCrawlMark& stackMark, IEnumerable`1 assemblyAttributes,SecurityContextSource >securityContextSource) at System.AppDomain.DefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess >access) at Castle.DynamicProxy.ModuleScope.CreateModule(Boolean signStrongName) at Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithStrongName() at Castle.DynamicProxy.ModuleScope.ObtainDynamicModule(Boolean isStrongNamed) at Castle.DynamicProxy.Generators.Emitters.ClassEmitter.CreateTypeBuilder(ModuleScope modulescope, String name, Type baseType, Type[] 接口, TypeAttributes flags, Boolean forceUnsigned) at Castle.DynamicProxy.Generators.Emitters.ClassEmitter..ctor(ModuleScope modulescope,>String 名称,Type baseType,Type[] 接口,TypeAttributes 标志,Boolean forceUnsigned) at Castle.DynamicProxy.Generators.Emitters.ClassEmitter..ctor(ModuleScope modulescope, >Castle.DynamicProxy.Generators.Emitters.ClassEmitter..ctor(ModuleScope modulescope, >String name, Type baseType, Type[] interfaces) 在 Castle.DynamicProxy.Generators 中的字符串名称、类型 baseType、Type[] 接口、TypeAttributes 标志。 BaseProxyGenerator.BuildClassEmitter(String typeName, >Type parentType, Type[] interfaces) at Castle.DynamicProxy.Generators.BaseProxyGenerator.BuildClassEmitter(String typeName, >Type parentType, IList interfaceList) at Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateCode(Type[ ] 接口,ProxyGenerationOptions 选项)在 Castle.DynamicProxy.DefaultProxyBuilder.CreateClassProxy(Type classToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options) 在 Castle.DynamicProxy.ProxyGenerator.CreateClassProxyType(Type classToProxy,Type[] additionalInterfacesToProxy, ProxyGenerationOptions options) at Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(Type classToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options, Object[] constructorArguments, IInterceptor[] 拦截器) at Rhino.Mocks.MockRepository.MockClass(CreateMockState mockStateFactory,在 Rhino.Mocks.MockRepository.CreateMockObject(Type [] extras, Object[] argumentsForConstructor) 在 Rhino.Mocks.MockRepository.CreateMockObject(Type type, CreateMockState factory, Type[] extras, Object[] argumentsForConstructor) 在 Rhino.Mocks.MockRepository.PartialMultiMock(Type type, Type[] extraTypes, Object[] argumentsForConstructor) 在 Rhino.Mocks.MockRepository.PartialMock(Type type, Object[] argumentsForConstructor) 在 Rhino.Mocks.MockRepository.PartialMock[T](Object[] argumentsForConstructor) 在模型。IntegrationTests.Documents.DocumentFilesRepositoryTest.Delete_file_Page_not_shared_can_delete() 在 c:\TFS_DATA\Dev\BUILDCI\Common8\Tests\Integration\Domain.IntegrationTests\Documents\DocumentFilesRepositoryTest.cs:line 293
我们的单元测试使用 RhinoMocks 进行模拟。最初我们怀疑这可能是 RhinoMocks 的问题,因为 RhinoMocks 程序集的目标框架是 .NET 2.0,而我们使用的是 .NET 4.5。因此,我们使用 Moq 进行模拟重写了失败的测试,因为 Moq 程序集可用于目标框架 4.0。但我们仍然遇到同样的问题。任何建议错误的根本原因可能是什么?
visual-studio - 按视觉工作室类别分组规范流测试
我希望能够从 vstest.console.exe 命令行运行每个规范流功能,而不是运行该项目中的所有测试。我意识到有一个用于按类别过滤的命令行参数,但对我来说如何为 specflow 测试定义类别并不明显。有没有办法做到这一点,或者有没有其他方法可以完成通过命令行与 vstest.console 运行的分组规范流测试?
selenium - 无法在 Jenkins 中运行 IIS Express 服务器
我正在尝试使用IISExpress
服务器运行 Selenium 测试。我正在使用 VSTest 插件来运行我的测试。在 Visual Studio 中本地一切正常,但是当我在 Jenkins 中运行测试时,该IISExpress
过程永远不会启动。我什至尝试在 Jenkins 中添加一个 Windows 批处理命令步骤,专门用于加载服务器,但即使这样似乎也无济于事。当我将 Jenkins 作为可以与桌面交互的服务运行并观察它的工作时,我可以看到 Selenium 加载了浏览器,但IISExpress
从未启动。对此有什么想法吗?
unit-testing - vstest.console 抛出 System.IO.FileNotFoundException
我的应用程序有几个单元测试项目。所有其他项目和单元测试项目都构建到一个公共输出目录中。通过 msbuild 任务,我正在收集所有单元测试程序集并运行 vstest.console.exe 来测试这些程序集。
这会导致异常:System.IO.FileNotFoundException:无法加载文件或程序集“someassembly.dll”或其依赖项之一。指定的模块无法找到。
当我为单个单元测试程序集执行 vstest.console.exe 时,不会发生上述异常。进一步的调查了解到,当一次测试多个程序集时,vstest.console 会将测试程序集和依赖的程序集复制到“testresults”目录中的“out”目录中。但是,并非所有需要的程序集都被项目引用,而是手动复制到公共输出目录。这些程序集在“testresults”的“out”目录中丢失,并导致 System.IO.FileNotFoundException。
使用 MSTest,我可以通过添加 DeploymentItem 使用配置文件指向公共输出目录。对于 vstest.console 这不再起作用了。
我能做些什么来解决这种行为?我不想使用“out”目录。从公共输出目录运行我的单元测试就可以了。
PS。我在 TFS 2013 上遇到了与构建定义相同的问题。我的构建定义正在收集 *.unittest.dll 并使用 Test Runner 执行这些。
visual-studio-2013 - 如何在我的 Windows 应用商店应用程序中忽略 VSTest 错误消息?
当我构建我的 Windows 应用商店应用程序时,它显示了测试的输出:
- 在窗口底部,我看到“检测到意外错误。检查测试输出窗格以获取详细信息”
我不在乎这个或想看到它(现在,无论如何)。我没有设置任何测试。我怎样才能让测试纳粹安静下来?
更新
我不知道是否有直接连接,但是在为 Windows 8 和 Windows 8.1 安装 SQLite 包更新后,那些奇怪的、流氓的、非编译阻塞的“异常”消息消失了。
正如 Kip Dynamite 所说,“该死!!!” 我写得太早了;同样的错误信息现在又回来了。
更新 2
似乎将 Package.appxmanifest 的 Packaging 选项卡上的包名称从 [some GUID] 更改为 [companyName.appName] 解决了它...对接 Y?
更新 3
只有一次(这是baaaaack!)
powershell - Dotcover 不报告使用 Vstest.console 执行的 MStest 的代码覆盖率
如果我使用 mstest.exe 生成代码覆盖率,Dotcover 工作正常,但如果我的测试使用 MSFakes,则 mstest.exe 不起作用。所以我别无选择,只能使用 vstest.console。如果我使用 Vstest.console 它适用于“带有假货的 MS 测试”,但报告代码覆盖率为 0%。只是为了测试,我创建了另一个不使用 MSfakes 的单元测试项目,即使对于这个项目 vstest.console 报告代码 covegare 为 0%。
我正在使用 powershell 脚本来自动化单元和集成测试过程。下面是我的代码。我在这里想念什么?或者 dotcover 不支持此功能?