Как провалить тест с условиями в Robot Framework - PullRequest
1 голос
/ 04 апреля 2019

У меня проблемы с написанием условий в Robot Framework.Мне нужно знать, если процесс не удалось \ успешно \ все еще в процессе.У меня есть цикл с таймаутом, который ждет, пока процесс не будет завершен неудачно \ успешно (выполнено)

Я не уверен, как: - затормозить случай и выполнить проверку - только если процесс не удался.
- тормозиз кейса и сдачи теста - только если процесс "успешен" \ сделано.

вот код питона:

   for i in range(timeout):
       if wait_for_failed_proccess is True:
          result = False
          break 
       if wait_for_success_process is True:
          result = True
          break 
       time.sleep(1000)
   return result

код каркаса робота:

${result} =    Test process waiter
Run keyword if| ${result}==False---> need to fail test. the process has failed  
Run keyword if| ${result}==True---> test passed. continue to the next test 

Test process waiter
 [documentation]          wait until process is done
 [timeout]                25 min 

 For      ${index}     IN RANGE     [TIMEOUT]
  run keyword if|Validate failed process==Ture|${result}=False|Exist From loop 
  run keyword if|Validate success process==Ture|${result}=True|Exist From loop
  Sleep      10
 END
 [return] result 


Validate failed process
 [documentation]        confirmed process failed 
 Element should contain     ${message}     Failed 

Validate success process 
[documentation]        confirmed process is done 
Element should contain     ${message}     Completed successfully

1 Ответ

3 голосов
/ 04 апреля 2019

Самый распространенный способ сделать это - заставить ваш код Python вызывать исключение, а не возвращать True или False:

for i in range(timeout):
    if wait_for_failed_proccess is True:
       raise Exception("Process timed out")
    ...
...

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

Если вы предпочитаете возвращать значение true или false, вы можете использовать встроенный fail Ключевое слово:

Run keyword if | ${result}==False | fail | Process timed out
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...