0

私は、郵便配達の環境変数/グローバル変数と同様のものを設定しようとしています。 Postmanはこれらの変数をJSONに保存し、テスト内でこれらの変数を変更すると、新しい値に永続的に変更されます。例:分度器永続変数

postman.setEnvironmentVariable("variable1", parseInt(postman.getEnvironmentVariable) +1); 

この関数は、要求の開始時に環境変数を1つインクリメントします。私の本当のPostmanテストでは、独自のものでなければならないので、以前に使用されたバーコードに基づいて有効なEAN13バーコードを計算するカスタム関数を使用します。

分度器で実現できるものはありますか?

答えて

0

私はこれに優雅な解決策を見つけました。私は以下のようなJSONオブジェクトの私のparamsをインポート:

global.DATA_PATH = './data/environment.json'; 
global.fs = require(fs); 
exports.config = { 
    ... 
    params: { 
     data = require(global.DATA_PATH) 
    } 
    ... 
}; 

その後、私のJSONオブジェクトに、私はそうのようなデータを定義します:

{ 
    "variable1": "blah" 
} 

を今、私は通常のオブジェクトのドット表記を通じて自分のデータにアクセスすることができます私のコードで:

this.modifyVariable1 = function(value) { 
    params.data.variable1 = value; 
} 

これは単にパラメータの変数params.data.variable1を変更するので、私はnodejsモジュールを使用して、ファイルとそれを同期しますafterAll 10:スペックが行われたときのparamsオブジェクトへの変更は、各it声明を通じて持続するので

afterAll(function() { 
    global.fs.writeFile(global.DATA_PATH, (JSON.stringify(params.data), null, 4), 'utf8); 
}); 

にのみ実行する必要があります。

これは、これと似たようなものを試してみたいと思っている人に役立ちます。

1

データの格納に'params'オブジェクトを使用します。設定ファイルで設定することができます。 browser.params.loginのようなブラウザオブジェクトからアクセスconfig

params: { 
     login: { 
     user: 'Jane', 
     password: '1234' 
     } 
    } 

。別のテストで取得できるオブジェクトの値を変更することができます。

+0

しかし、すべてのテストを実行しても元々のものに戻されることはありませんか?突然EAN13のバーコードはもはやユニークではないため、私はテストを実行するたびにどのバーコードを使用するかを推測しなければならないので、これはうまくいかないでしょう。 – esiroky

+0

あなたは正しいです、それはテストが完了した後も持続しません。 process.env.somevariableもこの永続性を持たないでしょう。この値をファイルに保存するのはどうですか? – Grasshopper

+0

私はこれを考えましたが、これを何らかの方法で見つけられませんでした。インスタンス化されていないグローバル変数を定義し、ヘルパー関数を定義してJasmineのbeforeEachまたはafterEach関数で呼び出す必要がありますか? – esiroky