TravisCI и SauceLabs - файл не существует в файловой системе

У меня есть проект с тестами Protractor, которые выполняются TravisCI через SauceLabs.

Один из тестов включает «загрузку» файла:

it('should not allow "image/jpeg" file', function () {
  pathToFile = path.resolve(__dirname, 'file.jpg');
  elem.sendKeys(pathToFile);
  expect(elem.getAttribute('class')).toMatch('ng-invalid');
});

Это отлично работает локально, однако Travis выдает ошибку:

<сильный>. . . ./file.jpg" не существует в файловой системе

Я думаю, это потому, что file.png не существует в SauceLabs.

Мой вопрос в том, как я могу заставить это работать?

Речь идет об этой директиве: https://github.com/GrumpyWizards/ngValidation/blob/master/wizValidation/src/file/file.dir.js


person Greg    schedule 23.04.2014    source источник
comment
Можете ли вы дать немного больше информации об элементе/директиве, которую вы тестируете?   -  person Michal Charemza    schedule 03.05.2014
comment
Обновил вопрос...   -  person Greg    schedule 05.05.2014
comment
Похоже, есть функция setFileDetector, описанная на saucelabs.com/resources/selenium-file-upload, что теоретически может заставить это работать. Однако из github.com/angular/protractor/issues/612 и code.google.com/p/selenium/issues/detail?id=6048 #c3 похоже, что на данный момент нет привязки к узлу, и поэтому он не будет доступен из Protractor, пока он не будет добавлен (или вы не добавите его: но я не уверен, что вы можете использовать пользовательская сборка Selenium с соусом?)   -  person Michal Charemza    schedule 05.05.2014
comment
Та же проблема с моим плагином здесь: ng-form-data.tomchentw.com   -  person Tom Chen    schedule 07.05.2014
comment
Я получил тот же вывод для комментария Михала здесь.   -  person Tom Chen    schedule 07.05.2014


Ответы (1)


Это тест пользовательского интерфейса, нет необходимости разрешать имя пути вообще...

it('should not allow "image/jpeg" file', function () {
  pathToFile = "path/is/not/important/file.jpg";
  elem.sendKeys(pathToFile);
  expect(elem.getAttribute('class')).toMatch('ng-invalid');
});

Майкл

person Michael Dausmann    schedule 20.05.2014
comment
Однако элемент использует файловый API HTML5 для чтения сведений о файле. - person Greg; 20.05.2014