2016-11-03 2 views
2

Привет У меня проблема с испытаниями на основе BuddyBuild.Тесты BuddyBuild терпят неудачу, но на местных работах отлично

метод, что я хочу, чтобы тест:

public static String convertTimeToDepartureDate(long timeInMillis) { 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(timeInMillis); 
     SimpleDateFormat format = new SimpleDateFormat("d MMM HH:mm", Locale.ENGLISH); 
     return format.format(calendar.getTime()); 
    } 

и это мой тест:

@Test 
public void timeToDepartureTest() throws Exception { 
     String dateDeparture = TimeUtils.convertTimeToDepartureDate(timeMillis); 
     assertEquals("Date have wrong format or numbers!", "7 Oct 16:45", dateDeparture); 
} 

И это одно решение, что я нашел в Интернете, но не работает:

@Test 
public void timeToDepartureTest() throws Exception { 
    synchronized (Calendar.getInstance()) { 
     String dateDeparture = TimeUtils.convertTimeToDepartureDate(timeMillis); 
     assertEquals("Date have wrong format or numbers!", "7 Oct 16:45", dateDeparture); 
    } 
} 

На наших станках отлично работает. Все тесты прошли. Но на BB не работает. Это журнал с BB консоли:

... 
    :app:testDebugUnitTest 
    com.package.dao.TimeUtilsTest > timeToDepartureTest FAILED 
    junit.framework.ComparisonFailure at TimeUtilsTest.java:46 
    com.package.dao.TimeUtilsTest > timeToMinutesAndHoursTest FAILED 
    junit.framework.ComparisonFailure at TimeUtilsTest.java:52 
    com.package.dao.TimeUtilsTest > timeToSpecificFormatTest FAILED 
    junit.framework.ComparisonFailure at TimeUtilsTest.java:70 
    com.package.dao.TimeUtilsTest > timeToOpeningHoursTest FAILED 
    junit.framework.ComparisonFailure at TimeUtilsTest.java:64 
12 tests completed, 4 failed 
... 

Я думаю BB работает отлично. У нас есть проблема в нашем тесте. Можете ли вы представить, как его решить? Спасибо.

+1

То же самое здесь. Мы уже обратились к команде поддержки Buddybuild, давайте посмотрим, скоро ли мы найдем подходящее решение для этого. – YawaraNes

+0

Видя то же самое на iOS и BB тоже. Также попросили их о помощи. – Michael

+0

Сообщите мне, как они ответили. –

ответ

0

Проблема была в часовом поясе. BuddyBuild использует PST, а локальные машины/код использует EST по умолчанию или что-то еще. Решение определяет часовой пояс для каждого значения времени.

для SimpleDateFormat:

//...   
SimpleDateFormat format = new SimpleDateFormat("d MMM HH:mm", Locale.getDefault()); 
    format.setTimeZone(TimeZone.getTimeZone("UTC")); 
//... 

и Calendar:

//... 
Calendar cal = Calendar.getInstance(); 
cal.setTime(dateConverted); 
cal.setTimeZone(TimeZone.getTimeZone("UTC")); 
//... 

А теперь тест будет пройден.

Смежные вопросы