uiautomator утверждает несколько раз

Я запускаю тесты с uiautomator. Когда я дойду до конца своего теста, мне нужно проверить свои результаты. Моя проблема в том, что один тест не проходит, остальные не будут тестироваться. Мне нужно, чтобы их всех проверили независимо от результатов других тестов. Это мои попытки:

public void testSomeUI() {
  ////lots of stuff

  assertEquals(///assertion///);
  assertEquals(///assertion///);
  assertEquals(///assertion///);
  ....and so on
}

Также я пробовал:

public void testSomeUI() {
  ////lots of stuff

 testValue1();
 testValue2();
 testValue3();
  ....and so on
}

  private void testValue1(){
   assertEquals(///assertion///);
}  
  private void testValue2(){
   assertEquals(///assertion///);
}   
  private void testValue3(){
   assertEquals(///assertion///);
} 
..and so on

Если один выйдет из строя, последние три не будут работать. Какие-либо предложения? Спасибо.


person Chad Bingham    schedule 27.11.2013    source источник


Ответы (1)


Проблема в том, что как только утверждение терпит неудачу, оно вырывается из метода. Вот почему остальные не бегают.

Попробуйте использовать тестовую среду, такую ​​​​как JUnit (на которой, похоже, построен UIAutomator). Затем напишите один метод для каждого утверждения. Таким образом, вы не только каждый раз будете запускать все утверждения, но и разбить тесты на подходящие небольшие размеры. Если они названы правильно, вам может вообще не понадобиться отладка, так как вы можете сказать по имени неудачного теста, где действительно проблема.

Вот ссылка, например, на учебник.

person t0mppa    schedule 27.11.2013
comment
Я знаю, что вызывает это, как я сказал в своем вопросе. И я также пытался использовать несколько методов, как я показал в своем вопросе... - person Chad Bingham; 27.11.2013
comment
Однако вы вызываете их все из одного и того же метода, поэтому, как только вы выходите из него, остальные не вызываются. - person t0mppa; 27.11.2013
comment
Я понимаю. Итак, мне нужно будет добавить эти тесты в сценарий запуска? - person Chad Bingham; 27.11.2013
comment
Вы можете использовать setUp() для запуска сценария пользовательского интерфейса, а затем поместить утверждения в методы public void testSomething(), каждый из которых запускается отдельно после выполнения setUp(). - person t0mppa; 27.11.2013
comment
Вот что я имею в виду под своим скриптом запуска - person Chad Bingham; 27.11.2013