У меня есть ситуация, в которой мне нужно динамически генерировать функциональные тесты. По сути, я хочу использовать BrowserStack для запуска своих тестов в различных средах, но я хочу зарегистрировать другой набор тестов в зависимости от того, работаю ли я на настольном или мобильном устройстве.
Вот фрагмент кода из файла, с которого все начинается, чтобы вы могли понять, как я это делаю:
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);
}
});
Затем я просматриваю конфигурацию, динамически генерируя тесты и вызывая registerSuite
.
Я хотел бы иметь возможность передать еще один параметр - выбранную среду.
https://theintern.io/leadfoot/module-leadfoot_Server.html#getSessionCapabilities Похоже, там есть нужная мне информация, но я не знаю, как ее получить.
Моя конфигурация для TheIntern включает следующий список сред, и я хотел бы знать, какая из них была выбрана для конкретного запуска, прежде чем вызывать функцию 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
}
]