npm install --save-dev jest
でjestをプロジェクトに追加しtestsフォルダを作成しましたがテストタブに何も表示されません。どのようにすればよいですか?Visual Studio CodeでJestのテストを表示するためには、以下の手順を試してみてください:
jest.config.js
ファイルが存在することを確認します。このファイルはJestの設定を含んでおり、テストファイルの場所やテスト環境などを指定します。もし存在しない場合は、適切な設定を含むjest.config.js
ファイルを作成します。__tests__
フォルダ内のファイル、または.test.js
または.spec.js
という拡張子のファイルをテストファイルとして認識します。テストファイルがこれらの命名規則に従っていることを確認します。これらの手順を試してみてください。それでも問題が解決しない場合は、エラーメッセージやその他の詳細情報を教えていただければ、より具体的な解決策を提供できるかもしれません。よろしくお願いいたします!
テストファイルはどのように書けば良いですか?Google Apps script用のスクリプトファイルをrequireする記述も含めてください。
Google Apps Scriptのプロジェクトをローカルでテストするためには、まずGoogle Apps Scriptの関数をエクスポートできるようにする必要があります。これは、Google Apps ScriptがNode.jsのrequire
ステートメントをサポートしていないためです。
以下に、Google Apps Scriptの関数をエクスポートし、Jestでテストするための基本的な手順を示します。
// Code.gs
function myFunction() {
// Your function logic here
}
// Export for local testing
if (typeof module !== 'undefined') {
module.exports = {
myFunction
};
}
.test.js
を付けます。以下に例を示します。// Code.test.js
const { myFunction } = require('./Code.gs');
test('myFunction does something', () => {
// Arrange
// Set up your test
// Act
const result = myFunction();
// Assert
// Check the result
expect(result).toBe(/* Expected result */);
});
npm test
を実行すると、Jestはプロジェクト内のすべてのテストファイルを自動的に見つけて実行します。この方法で、Google Apps Scriptの関数をローカルでテストすることができます。ただし、Google Apps Scriptの特定のサービス(例えば、SpreadsheetAppやGmailAppなど)を使用する関数は、これらのサービスをモックする必要があります。これは、これらのサービスがローカル環境では利用できないためです。モックの作成は少し複雑な作業になる場合がありますが、テストの品質を大幅に向上させることができます。よろしくお願いいたします!
Visual Studio CodeのインテリセンスがJestの関数(expect
やtoBe
など)を認識しない場合、それは通常、プロジェクトがJestの型定義を持っていないためです。これを解決するには、Jestの型定義をプロジェクトに追加する必要があります。
以下に、Jestの型定義を追加する手順を示します: