【问题标题】:Running node.js tests locally in vstest.console.exe gives ... Error: An exception occurred while invoking executor 'executor://nodejstestexecutor/v1在 vstest.console.exe 中本地运行 node.js 测试会给出...错误:调用执行程序 'executor://nodejstestexecutor/v1 时发生异常
【发布时间】:2017-07-03 07:28:36
【问题描述】:

我正在尝试让 VSTS 运行我的 Mocha 单元测试,类似于我在 VS 2017 中让它们运行的​​方式。

我安装了Node JS Tools for Visual Studio 和 VS 测试资源管理器(重新启动后) 获取测试并运行它们。

但我无法获得 VSTS 构建任务来运行它们???

尝试浏览 NTVS 上关于 running tests in VSTS 的注释,但没有让它工作的乐趣。

移到关于troubleshooting 的部分,看看我是否可以使用本地的vstest.console.exe 运行测试...

目前正在尝试运行 vstest ...

  • 错误:找不到导入的项目"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\Node.js Tools\Microsoft.NodejsTools.targets"
  • 快速修复 ... 将目录副本 ... C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\Node.js Tools ... 添加到 ... C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0
  • 错误:找不到导入的项目"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets"
  • 快速修复 ...添加了目录的副本 ... C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets ... 到 ... C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0
  • 错误:找不到路径的一部分C:\Repos\smc\BasicAzureExpress\BasicAzureExpress\ntvs\TestFrameworks
  • quick fix ... 将 .nsproj 修改为 VS 2017 ... <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>\ntvs 下的目录 \TestFrameworks

...然后出现错误...Error: Missing generic test framework

所以我很困惑为什么 VS 2017 可以运行测试,但 vstest.console.exe 不会

【问题讨论】:

  • 您使用 Hosted VS 2017 代理吗?尝试在 Visual Studio 测试任务中指定 vstest.console.exe 路径。 (C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\TestPlatform)
  • 注意:需要安装test agent 2017。
  • 尝试我的解决方案后结果如何?
  • @starain-MSFT 抱歉,紧急修复被拖了,所以不得不搁置调查。希望下周能恢复。

标签: node.js unit-testing msbuild azure-devops visual-studio-2017


【解决方案1】:

首先VSToolsPath在命令行运行时为空,然后使用$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)路径,但没有nodejs工具的必要文件。

您可以这样修改(如果您使用的是 vs2017 Professional,请将 Community 更改为 Professional):

<!--<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>-->
    <VSToolsPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0</VSToolsPath>

其次,参考这些步骤在 Hosted VS 2017 代理上运行测试。

  1. 修改项目文件 (njsproj)

<!--<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>-->
    <VSToolsPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0</VSToolsPath>
  1. 将 C:\Program Files (x86)\Microsoft Visual Studio\2017[社区、专业或企业]\Common7\IDE\Extensions\Microsoft 中的 NodeJsTools 内容复制到您的 ntvs 文件夹中
  2. 将这些文件添加到源代码管理并签入更改
  3. 使用 Hosted VS 2017 代理构建队列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多