Selenium: сохраненная переменная не учитывается во всех тестовых примерах при выполнении набора тестов из командной строки - PullRequest
4 голосов
/ 21 июля 2011

У меня есть набор тестов с 3-мя тестами, из которых в первом тесте есть все переменные, необходимые в двух других тестах (что-то вроде набора данных для набора тестов)

Все это, пока я выполнял наборы тестов в IDE Селена (загрузка набора тестов в IDE вручную и затем запуск), все было хорошо.

Но я хотел получить отчет для выполнения тестового примера, так что теперь яЯ использую приведенную ниже команду для выполнения testsuite
java -jar "selenium-server jar path" -htmlSuite "* firefox" "baseurl" "TestSuite path" "Путь к файлу результатов"

ТеперьПроблема заключается в том, что при выполнении набора тестов из команды propmt
переменные, хранящиеся в первом тестовом примере, не учитываются во втором тестовом примере и т. Д.

Так что кто-нибудь может помочь мне решить эту проблемувыпуск.

Ответы [ 3 ]

2 голосов
/ 21 июля 2011

Открыть архив: selenium-server.jar \ core \ scripts \ Find selenium-testrunner.js Найти и удалить следующий код из файла:

storedVars = new Object();
        storedVars.nbsp = String.fromCharCode(160);
        storedVars.space = ' ';
1 голос
/ 28 марта 2012

Эта проблема является известной ошибкой.Поэтому вам нужно открыть файл selenium-server.jar или rc jar, который у вас есть, примерно в 7zip (что я использую) и найти следующий файл:

selenium-server.jar\core\scripts\selenium-testrunner.js.

7zip позволитчтобы обновить его на лету, вам нужно просто переместить следующий код:

storedVars = new Object();
storedVars.nbsp = String.fromCharCode(160);
storedVars.space = ' ';

изначало функции startTest до начала функции startTestSuite.

Простое перемещение там, где инициализируется объект хранимых переменных.

note Когда вы выберете для редактирования в 7zip, он откроется в блокноте, и вы увидите, что код неотформатировать, поэтому скопируйте все и откройте его в notepad ++ или что-то еще, затем вставьте обратно после изменения и сохраните.

у вас также может возникнуть проблема, если вы делаете это в Windows, потому что в корнеRC jar - это каталог с названием «license» и файл с именем «LICENSE», и ужасные окна идентифицируют его как дубликат файла, поэтому, прежде чем делать все, что было сказано выше, измените имя файла «LICENSE» на что-то вроде «LICENSE_FILE».

0 голосов
/ 21 июля 2011

Я решил это в своем коде на основе Java следующим образом:

public class ExampleTest{ //main class of all testmodels

private static String valueIneedToBeSendToAllTests;

@Test
  public void test1(){
    // steps of test
    String result = driver.webelement().getText();
    setMyValue(result);
  }

 @Test 
 public void test2(){
    // steps of test
    String whatWasTheTextAgain = getMyValue();

  }


public String getMyValue(){
   return valueIneedToBeSendToAllTests;

  }

public void setMyValue(String valueToSet){
  this.valueIneedToBeSendToAllTests = valueToSet;

 }


}

Итак, повторим:

  • Значение, которое мне нужно сохранить, является частным и статическим
  • Это значение равно значению основного класса, а не одному из тестов
  • У значения есть установщики и получатели.В других отношениях это было сбой для меня
...