如何在不中断玩笑测试的情况下在Angular应用程序中使用powerbi-client依赖关系?

问题描述 投票:3回答:1

我的目标是在Angular 9应用程序中使用powerbi-client。使用这样的库,我的POC组件效果很好:

import * as pbi from 'powerbi-client'; // It's installad in package.json

但是,当我开玩笑地运行单元测试时,出现此错误:

TypeError: Cannot read property 'getRandomValues' of undefined

看起来像这样:enter image description here

非常欢迎任何帮助🤷🏽‍♂️

我尝试在angular.json的脚本部分下添加库,但这没有帮助:

"scripts": [
    "./node_modules/powerbi-client/dist/powerbi.min.js"
],
angular jestjs powerbi-embedded
1个回答
0
投票

我今天也经历过。在您的setupTests文件中,或在其他任何地方,Jest让我们设置测试配置,添加以下内容:

const crypto = require('crypto')

Object.defineProperty(global.self, 'crypto', {
  value: {
    getRandomValues: arr => crypto.randomBytes(arr.length)
  }
})

您甚至可以将其添加到测试文件中,但不确定如何配置您的项目。希望这可以帮助。 (由于您使用的是.ts和angular,因此您可能还需要为此改变某些类型)。

© www.soinside.com 2019 - 2024. All rights reserved.