1

我正在尝试使用 vstest.console.exe 测试运行程序对 azure 角色运行测试。它在模拟器上运行良好,但在真正的天蓝色云实例中,我想使用的 TRX-Logger 不可用。

我正在将孔测试 Runner 文件夹复制到我的云实例,其中包含“...\TestWindow\”文件夹的子文件夹中的所有 DLL 文件和依赖项。TfsLogger 也有一个 dll 文件,TrxLogger 也有一个 dll 文件。但是当我运行 vstest.console.exe 时,它​​指出 /logger:trx 选项无效,因为 trx 不是有效的 URI 或友好名称。当我列出 vstest.console.exe 的所有可用记录器时,我只得到 2 个测试记录器“Console”和“TfsLogger”(或“TfsPublisher”)。

这是我的扩展文件夹的内容:

E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.GenericTestAdapter.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.MSAppContainerAdapter.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.OrderedTestAdapter.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.TfsLogger.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.TmiAdapter.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.TrxLogger.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.Extensions.VSTestIntegration.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestPlatform.UnitTestFramework.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestTools.CppUnitTestFramework.ComInterfaces.dll
E:\approot\TestRunner\Extensions\Microsoft.VisualStudio.TestTools.CppUnitTestFramework.CppUnitTestExtension.dll; 

有谁知道为什么 trx 记录器在 azure 实例(工作角色)上不可用,但 TfsLogger 是,而这两个 dll 文件都在 vstest.console.exe 的同一个子文件夹中可用?是否可以“安装”或使 TrxLogger 可用于我的测试运行程序?!

此致

塞巴斯蒂安

4

1 回答 1

3

我知道这是一个老问题,但我刚刚遇到了一个类似的问题,我只有控制台和 TfsLogger,但没有办法拥有 TrxLogger。不同之处在于我没有使用 Azure,我在我的 CI 测试服务器上,我只安装了 MSBuild 2013,作为新的“Microsoft Build Tools Package”的一部分。它安装了所有东西,但我无法为 MSBuild VS 2013 安装 TrxLogger,而它在 VS 2012 上运行良好。

经过一番搜索,我启用了 vstest.console 的日志记录(通过在其配置文件中将 TpTraceLevel 设置为 4),它在我的 Local Temp 文件夹中记录了一些信息。

只是看到它尝试加载 TrxLogger 程序集失败(对不起法语消息:)):

W, 3384, 1, 2014/03/07, 10:46:08.269, 2034438793, vstest.console.exe, TestPluginDiscoverer: Failed to get types from assembly 'Microsoft.VisualStudio.TestPlatform.Extensions.TrxLogger, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.  Skipping test extension scan for this assembly.  Error: System.Reflection.ReflectionTypeLoadException: Impossible de charger un ou plusieurs des types requis. Extrayez la propriété LoaderExceptions pour plus d'informations.
   à System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   à System.Reflection.RuntimeModule.GetTypes()
   à System.Reflection.Assembly.GetTypes()
   à Microsoft.VisualStudio.TestPlatform.Core.TestPluginsFramework.TestPluginDiscoverer.GetTestExtensionsFromAssembly(Assembly assembly, Dictionary`2 testDiscoverers, Dictionary`2 testExecutors, Dictionary`2 testSettingsProviders, Dictionary`2 testLoggers)

W, 3384, 1, 2014/03/07, 10:46:08.269, 2034439310, vstest.console.exe, LoaderExceptions: System.IO.FileNotFoundException: Impossible de charger le fichier ou l'assembly 'Microsoft.VisualStudio.QualityTools.Common, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou une de ses dépendances. Le fichier spécifié est introuvable.
Nom de fichier : 'Microsoft.VisualStudio.QualityTools.Common, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   à System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   à Microsoft.VisualStudio.TestPlatform.Core.TestPluginsFramework.TestPluginCache.CurrentDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   à System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)

为简化起见,我最终做的是在我的服务器上安装整个 Visual Studio 2013,但由于Microsoft.VisualStudio.QualityTools.Common程序集在我的 ReferenceAssemblies 文件夹中可用,也许我只需要某种方式来引用它(添加到路径或其他东西)

于 2014-03-07T10:16:53.433 回答