2017-07-22 60 views
0

我在WebStorm IDE中有一個node.js項目,它包含一個簡單的Jest測試。 測試通過但JSHint警告說'test' is not defined (w117)JSHint認爲Jest函數未定義

enter image description here

這裏是我的測試代碼:

const sum = require('./sum'); 

test('adds 1 + 2 to equal 3',() => { 
    expect(sum(1,2)).toBe(3); 
}); 

有沒有什麼辦法讓JSHint承認玩笑的功能呢?

+0

你介意我們展示你的代碼? – Marco

+0

添加了測試代碼 –

+0

好吧,你在哪裏定義/要求/導入'test'? – Marco

回答

2

從您向我們展示的代碼中,我們只能假設,test()是一個隱式聲明的全局變量。

在這一點上,我不知道這個方法屬於哪個框架,但如果你想JSHint閉嘴的話,你必須以某種方式聲明變量:

import test from { 'somemodule'} 
//or 
var test = require('test'); 
//or 
(function(test){ 
    test('foo',() => { 
     expect(1).toBe(1); 
    }); 
})(test);  

如果你知道你在做,你可以禁用警告,以下列方式之一:

{ 
    "undef": false 
} 

或者你可以迪:在項目文件夾或以上

Confgigure .jshintrc.json文件紫貂,通過使用對每個文件的基礎

/*jshint -W117 */ 
test('foo',() => { /* ... */}) 
1

JSHint作品警告內聯和不「看」,除非它們被加入到「全球」名單在其他文件中定義的全局變量。這可以通過將相應的註釋(/* global test*/)添加到文件中來完成 - 請參閱http://www.jshint.com/docs/,或者將想要全局使用的變量/函數添加到Preferences -> Languages & Frameworks -> Javascript -> Code Quality Tool -> JSHint -> Predefined (,separated)中的「預定義」列表中。如果您使用的是自己.jshintrc使用配置文件選項啓用),將其添加到「全局」有:

"globals": { 
    "test": true 
    } 
0

這也可以通過一個丟失的依賴造成的。

確保您已經安裝了@types/jest

npm install --save-dev @types/jest