Resolução de problemas com Visual Review e Protractor
Há algum tempo eu não trabalhava com o Protractor integrado ao Visual Review, e após algum tempo, quando voltei a integrar as ferramentas, me deparei com o seguinte erro ao executar meus testes, após configurados para tal integração:
Cannot read property 'platform' of undefined
Procurei na internet pelo exato erro e não encontrei nada relacionado, portanto, após a resolução do problema, resolvi divulgar aqui a solução, para ajudar quem venha a passar por isso também.
Primeiro, procurei em todo meu projeto pela tal platform e nada encontrei.
Então, resolvi dar uma olhada no node module do VisualReview-protractor. Lá, no arquivo visualreview-protractor.js encontrei a tal platform.
Minha primeira abordagem, após encontrar a platform foi verificar o retorno de capabilities.
console.log(capabilities);
E o retorno, foi o seguinte:
Capabilities {
'acceptSslCerts' => true,
'applicationCacheEnabled' => false,
'browserConnectionEnabled' => false,
'browserName' => 'chrome',
'chrome' => { chromedriverVersion: '2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4)',
userDataDir: '/var/folders/dx/nv38lwrs4xjdb8tnqzpfz0840000gn/T/.org.chromium.Chromium.VUtHtc' },
'cssSelectorsEnabled' => true,
'databaseEnabled' => false,
'handlesAlerts' => true,
'hasTouchScreen' => false,
'javascriptEnabled' => true,
'locationContextEnabled' => true,
'mobileEmulationEnabled' => false,
'nativeEvents' => true,
'platform' => 'Mac OS X',
'rotatable' => false,
'takesHeapSnapshot' => true,
'takesScreenshot' => true,
'version' => '51.0.2704.79',
'webStorageEnabled' => true
}
Veja que a platform estava lá, mas não em uma estrutura capabilities.caps_.platform, mas sim na estrutura capabilities.platform.
Daí foi a vez de analisar a documentação da ferramenta, que mostrava o seguinte:
Com isso, ficou fácil de entender o que faltava.
Foi só mudar meu arquivo de configuração do Protractor, de:
const VisualReview = require('visualreview-protractor');
var vr = new VisualReview({
hostname: 'localhost',
port: 7000
});
Para:
const VisualReview = require('visualreview-protractor');
var vr = new VisualReview({
hostname: 'localhost',
port: 7000,
propertiesFn: function (capabilities) {
return {
'os': capabilities.platform,
'browser': capabilities.browserName,
'version': capabilities.version
};
}
});
Com isto meus testes e2e voltaram a funcionar, integrados ao Visual Review.
Obs.: Este problema foi percebido em um ambiente com as seguintes configurações:
Chrome Version 51.0.2704.79 (64-bit) Protractor Version 3.3.0 Visual Review v0.1.3 Visual review-protractor "^0.2.0"
E você, tem alguma experiência legal sobre seus experimentos entre o Protractor e o Visual Review? Conta aí!
Ficou interessado? Veja aqui o que já escrevi sobre o assunto e aqui um video demonstrando com a mão na massa como isso funciona.
Veja também este post em sua versão em Inglês no Medium.

