J'ai une situation dans laquelle j'ai besoin de générer dynamiquement des tests fonctionnels. Fondamentalement, je veux employer BrowserStack pour exécuter mes tests sur une série d'environnements différents, mais je veux enregistrer une série différente de tests selon que je cours sur le bureau ou le mobile.TheIntern - détermination de l'environnement pour la génération de tests dynamiques
Voici un extrait de code à partir du fichier qui démarre le tout, afin que vous puissiez avoir une idée de la façon dont je vais parler:
define(function (require) {
var registerSuite = require('intern!object');
var assert = require('intern/chai!assert');
var config = require('intern/dojo/node!../../node_modules/our-repo/config');
// RIGHT HERE I NEED TO KNOW PLATFORM + BROWSER INFO!
var our_sites = ['A', 'C', 'C', 'D'];
for (let i=0; i<our_sites.length; i++) {
homepage_basic_site_test_suites(registerSuite, our_sites[i], config, assert);
}
});
Je cours puis à travers la configuration, la génération dynamique des tests et en appelant le registerSuite
.
Ce que je voudrais, c'est pouvoir transmettre un paramètre de plus - l'environnement qui a été choisi.
https://theintern.io/leadfoot/module-leadfoot_Server.html#getSessionCapabilities On dirait que cela fournirait l'information dont j'ai besoin, mais je ne sais pas comment l'obtenir.
Ma config pour le nouveau stagiaire comprend la liste suivante des environnements, et je voudrais savoir que l'on a été choisi pour une course particulière avant d'appeler la fonction homepage_basic_site_test_suites()
:
environments: [
{
browserName: 'IE',
version: ['11'],
platform: ['WINDOWS']
},
{
browserName: 'Edge',
version: ['13', 'latest'],
platform: ['WINDOWS']
},
{
browserName: 'Firefox',
version: ['54', 'latest'],
platform: [ 'WINDOWS', 'MAC']
},
{
browserName: 'Chrome',
version: ['45', 'latest'],
platform: ['WINDOWS', 'MAC']
},
{
browserName: 'Safari',
version: ['10.1', 'latest'],
platform: 'MAC'
},
{
browserName: 'iPhone',
platform: 'MAC',
device: ['iPhone 6'],
realMobile: true
},
{
browserName: 'iPad',
platform: 'MAC',
device: ['iPad 4th'],
realMobile: true
},
{
browserName: 'android',
platform: 'ANDROID',
device: ['Samsung Galaxy S5'],
realMobile: true
}
]