Регистрация  |  Вход

Тесты работают при проверке перед развертыванием, код разворачивается, а птм при запуске тестов они не работают

Песочница А. Написал код, тесты. Выкатываю на боевой - валятся тесты. Пытаюсь разобраться - ничего не получается. В песочнице А все работает, а на боевом не проходят тесты.
Делают новую песочницу Б. Там тот же самый список изменений проходит проверку. Бред.
Сегодня решил посмотреть, как же он проходит в этой свежей песочнице. Выкатил изменения в песочницу Б. Запускаю тесты - опа, теже ошибки, что и на боевом.
Что за бред? В чем смысл тестов перед выкатыванием изменений, если работать не будет после выкатывания изменений?
Или, может, процес проверки тестов на боевых и песочницах происходит по-разному?

Песочница А. Написал код, тесты. Выкатываю на боевой - валятся тесты. Пытаюсь разобраться - ничего не получается. В песочнице А все работает, а на боевом не проходят тесты.
Делают новую песочницу Б. Там тот же самый список изменений проходит проверку. Бред.
Сегодня решил посмотреть, как же он проходит в этой свежей песочнице. Выкатил изменения в песочницу Б. Запускаю тесты - опа, теже ошибки, что и на боевом.
Что за бред? В чем смысл тестов перед выкатыванием изменений, если работать не будет после выкатывания изменений?
Или, может, процес проверки тестов на боевых и песочницах происходит по-разному?

Chiz
Песочница А. Написал код, тесты. Выкатываю на боевой - валятся тесты. Пытаюсь разобраться - ничего не получается. В песочнице А все работает, а на боевом не проходят тесты.
Делают новую песочницу Б. Там тот же самый список изменений проходит проверку. Бред.
Сегодня решил посмотреть, как же он проходит в этой свежей песочнице. Выкатил изменения в песочницу Б. Запускаю тесты - опа, теже ошибки, что и на боевом.
Что за бред? В чем смысл тестов перед выкатыванием изменений, если работать не будет после выкатывания изменений?
Или, может, процес проверки тестов на боевых и песочницах происходит по-разному?

Я не знаю в курсе ли ты, но тесты запускаются, только после деплоя. Если тесты валяться, то все откатывается.

Выкатывай код по частям и смотри что падает.

[quote="Chiz"]Песочница А. Написал код, тесты. Выкатываю на боевой - валятся тесты. Пытаюсь разобраться - ничего не получается. В песочнице А все работает, а на боевом не проходят тесты.
Делают новую песочницу Б. Там тот же самый список изменений проходит проверку. Бред.
Сегодня решил посмотреть, как же он проходит в этой свежей песочнице. Выкатил изменения в песочницу Б. Запускаю тесты - опа, теже ошибки, что и на боевом.
Что за бред? В чем смысл тестов перед выкатыванием изменений, если работать не будет после выкатывания изменений?
Или, может, процес проверки тестов на боевых и песочницах происходит по-разному?[/quote]

Я не знаю в курсе ли ты, но тесты запускаются, только после деплоя. Если тесты валяться, то все откатывается.

Выкатывай код по частям и смотри что падает.

wilder
Я не знаю в курсе ли ты, но тесты запускаются, только после деплоя. Если тесты валяться, то все откатывается.

Тогда тем более, не понятно.
Все тесты проходят. Во время деплоя все проходит. А после - нет. Если тесты запускаются после деплоя, то почему они проходят в процессе деплоя. А после него, когда я просто запускаю тест - валится?

[quote="wilder"]Я не знаю в курсе ли ты, но тесты запускаются, только после деплоя. Если тесты валяться, то все откатывается.[/quote]
Тогда тем более, не понятно.
Все тесты проходят. Во время деплоя все проходит. А после - нет. Если тесты запускаются после деплоя, то почему они проходят в процессе деплоя. А после него, когда я просто запускаю тест - валится?

Chiz
wilder
Я не знаю в курсе ли ты, но тесты запускаются, только после деплоя. Если тесты валяться, то все откатывается.

Тогда тем более, не понятно.
Все тесты проходят. Во время деплоя все проходит. А после - нет. Если тесты запускаются после деплоя, то почему они проходят в процессе деплоя. А после него, когда я просто запускаю тест - валится?

Значит у тебя что-то меняется в момент деплоя и после него.

[quote="Chiz"][quote="wilder"]Я не знаю в курсе ли ты, но тесты запускаются, только после деплоя. Если тесты валяться, то все откатывается.[/quote]
Тогда тем более, не понятно.
Все тесты проходят. Во время деплоя все проходит. А после - нет. Если тесты запускаются после деплоя, то почему они проходят в процессе деплоя. А после него, когда я просто запускаю тест - валится?[/quote]

Значит у тебя что-то меняется в момент деплоя и после него.

wilder
Значит у тебя что-то меняется в момент деплоя и после него.

Ну так код же и меняется.
Ведь в чем смысл всего этого процесса? До деплоя все работает, во время и после него тоже. А тут получается до - работает, во время деплоя - работает, а птм - нет.

[quote="wilder"]Значит у тебя что-то меняется в момент деплоя и после него. [/quote]
Ну так код же и меняется.
Ведь в чем смысл всего этого процесса? До деплоя все работает, во время и после него тоже. А тут получается до - работает, во время деплоя - работает, а птм - нет.

Я не понял. Ты как делаешь деплой ?

1. У тебя деплой проходит или нет.
2. Ты после деплоя запускаешь тесты ручками и они падают ?

Я не понял. Ты как делаешь деплой ?

1. У тебя деплой проходит или нет.
2. Ты после деплоя запускаешь тесты ручками и они падают ?

wilder
Я не понял. Ты как делаешь деплой ?

1. У тебя деплой проходит или нет.
2. Ты после деплоя запускаешь тесты ручками и они падают ?

1. Запустил все тесты (руками) - в норме.
2. Сделал проверку Чендж Сэта - в норме.
3. Сделал деплой - в норме. (деплой прошел)
4. Запускаю все тесты (руками) - валится.

[quote="wilder"]Я не понял. Ты как делаешь деплой ?

1. У тебя деплой проходит или нет.
2. Ты после деплоя запускаешь тесты ручками и они падают ?[/quote]

1. Запустил все тесты (руками) - в норме.
2. Сделал проверку Чендж Сэта - в норме.
3. Сделал деплой - в норме. (деплой прошел)
4. Запускаю все тесты (руками) - валится.

Chiz
wilder
Я не понял. Ты как делаешь деплой ?

1. У тебя деплой проходит или нет.
2. Ты после деплоя запускаешь тесты ручками и они падают ?

1. Запустил все тесты (руками) - в норме.
2. Сделал проверку Чендж Сэта - в норме.
3. Сделал деплой - в норме. (деплой прошел)
4. Запускаю все тесты (руками) - валится.

Ну так в чем проблема, добавь в тесты отладку и смотри на чем падает.

[quote="Chiz"][quote="wilder"]Я не понял. Ты как делаешь деплой ?

1. У тебя деплой проходит или нет.
2. Ты после деплоя запускаешь тесты ручками и они падают ?[/quote]

1. Запустил все тесты (руками) - в норме.
2. Сделал проверку Чендж Сэта - в норме.
3. Сделал деплой - в норме. (деплой прошел)
4. Запускаю все тесты (руками) - валится.[/quote]

Ну так в чем проблема, добавь в тесты отладку и смотри на чем падает.

wilder
Ну так в чем проблема, добавь в тесты отладку и смотри на чем падает.

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

[quote="wilder"]Ну так в чем проблема, добавь в тесты отладку и смотри на чем падает.[/quote]
Да я не против. Я нашел проблему и поправил.
Я не понимаю, в чем прикол такого деплоя, во время которого тест не валится, а птм, после деплоя, когда руками запустил, он валится. В чем смысл тогда тесты прогонять во время деплоя?

Так в чем ошибка то была?
Может в самой ошибке и ответ кроется? Может деплой и запуск тестов вручную проходил в контексте разных пользователей?

Так в чем ошибка то была? 
Может в самой ошибке и ответ кроется? Может деплой и запуск тестов вручную проходил в контексте разных пользователей?

Dmitry Shnyrev
Так в чем ошибка то была?
Может в самой ошибке и ответ кроется? Может деплой и запуск тестов вручную проходил в контексте разных пользователей?

А какой контекст во время деплоя?

[quote="Dmitry Shnyrev"]Так в чем ошибка то была? 
Может в самой ошибке и ответ кроется? Может деплой и запуск тестов вручную проходил в контексте разных пользователей?[/quote]
А какой контекст во время деплоя?

Контекст пользователя под которым запускается деплой и тесты соответственно.
Например ты запускаешь деплой под каким нибудь супер админом, а потом заходишь на орг под другой учетной записью какого-нибудь дева. У них например разные настройки локали, а локаль учитывается в тестах. Вот и проблема. Это пример.

Контекст пользователя под которым запускается деплой и тесты соответственно.
Например ты запускаешь деплой под каким нибудь супер админом, а потом заходишь на орг под другой учетной записью какого-нибудь дева. У них например разные настройки локали, а локаль учитывается в тестах. Вот и проблема. Это пример. 

wilder
добавь в тесты отладку и смотри на чем падает.

дайте, пожалуйста, пример кода теста с отладкой

[quote="wilder"]добавь в тесты отладку и смотри на чем падает.[/quote]

дайте, пожалуйста, пример кода теста с отладкой

Все как обычно

System.debug

А потом смотришь лог деплоя

Все как обычно

System.debug

А потом смотришь лог деплоя

криво написанные тесты как итого. такого быть не должно. как вариант ответ Дмитрия на тему локали.

криво написанные тесты как итого. такого быть не должно. как вариант ответ Дмитрия на тему локали.

wilder
А потом смотришь лог деплоя

А где смотреть? В Monitoring -> Debug Logs?

[quote="wilder"]А потом смотришь лог деплоя[/quote]
А где смотреть? В Monitoring -> Debug Logs?

Chiz
wilder
А потом смотришь лог деплоя

А где смотреть? В Monitoring -> Debug Logs?

Нет. если через ANT, то лог в консоли будет на локальной машине, ну и ли в файле специальном

[quote="Chiz"][quote="wilder"]А потом смотришь лог деплоя[/quote]
А где смотреть? В Monitoring -> Debug Logs?[/quote]

Нет. если через ANT, то лог в консоли будет на локальной машине, ну и ли в файле специальном

wilder
Нет. если через ANT, то лог в консоли будет на локальной машине, ну и ли в файле специальном

А если не через Ант?
Парни на Проде кликают кнопочку Verify. Как тут быть?

[quote="wilder"]Нет. если через ANT, то лог в консоли будет на локальной машине, ну и ли в файле специальном[/quote]
А если не через Ант?
Парни на Проде кликают кнопочку Verify. Как тут быть?

Подожди. Изначально вопрос был простой - какая ошибка вываливается. Ошибку всегда можно увидеть при verify или при деплое через ант. Но если ошибки нет, то что ты собираешься мониторить?

Подожди. Изначально вопрос был простой - какая ошибка вываливается. Ошибку всегда можно увидеть при verify или при деплое через ант. Но если ошибки нет, то что ты собираешься мониторить?

Ты написал, что тесты в одном случае валятся в другом нет. В том когда валятся какая ошибка?

Ты написал, что тесты в одном случае валятся в другом нет. В том когда валятся какая ошибка?

Dmitry Shnyrev
Подожди. Изначально вопрос был простой - какая ошибка вываливается. Ошибку всегда можно увидеть при verify или при деплое через ант. Но если ошибки нет, то что ты собираешься мониторить?

Ошибку я вижу. Мне надо поянть, почему она появляется. Я не могу исправить ошибку, т.к. ее нет в песочнице.

[quote="Dmitry Shnyrev"]Подожди. Изначально вопрос был простой - какая ошибка вываливается. Ошибку всегда можно увидеть при verify или при деплое через ант. Но если ошибки нет, то что ты собираешься мониторить?[/quote]
Ошибку я вижу. Мне надо поянть, почему она появляется. Я не могу исправить ошибку, т.к. ее нет в песочнице.

Dmitry Shnyrev
Ты написал, что тесты в одном случае валятся в другом нет. В том когда валятся какая ошибка?

FIELD_CUSTOM_VALIDATION_EXCEPTION

[quote="Dmitry Shnyrev"]Ты написал, что тесты в одном случае валятся в другом нет. В том когда валятся какая ошибка?[/quote]
FIELD_CUSTOM_VALIDATION_EXCEPTION

Chiz
FIELD_CUSTOM_VALIDATION_EXCEPTION

часто такую ошибку вижу при валидации (а еще FIELD_FILTER_VALIDATION_EXCEPTION). Не знаю всех тонкостей Прода, но возможно они там могут создавать новые ВалРулы и фильтры на поля. Создал ВалРул в Проде на какой-то общий объект - и половина кода легло...

[quote="Chiz"]FIELD_CUSTOM_VALIDATION_EXCEPTION[/quote]

часто такую ошибку вижу при валидации (а еще FIELD_FILTER_VALIDATION_EXCEPTION). Не знаю всех тонкостей Прода, но возможно они там могут создавать новые ВалРулы и фильтры на поля. Создал ВалРул в Проде на какой-то общий объект - и половина кода легло...

Капец. А тесты не запускаются при деплои в песочницу. Это ужасно...

Капец. А тесты не запускаются при деплои в песочницу. Это ужасно...

Chiz
Капец. А тесты не запускаются при деплои в песочницу. Это ужасно...

Сравни метадату между 2-мя оргами это для начала. Если не найдешь различий, что-то не так. Но скорее всего найдешь. Возможно на проде сделали что-то ручками а в песочнице нет.

[quote="Chiz"]Капец. А тесты не запускаются при деплои в песочницу. Это ужасно...[/quote]

Сравни метадату между 2-мя оргами это для начала. Если не найдешь различий, что-то не так. Но скорее всего найдешь. Возможно на проде сделали что-то ручками а в песочнице нет.

wilder
на проде сделали что-то ручками а в песочнице нет.

вот для этого сендбоксы нужно регулярно рефрешить, иначе они "отрываются" от реальности Прода


я что-то не могу понять, если вы двигаете из сендбокса, то можно просто использовать Change Set, при попытке его деплоя на экране будет полный текст Error, вроде этого:
System.AssertException: Assertion Failed: message=Update failed. First exception on row 0 with id a1ut0000000KympAAC; first error: FIELD_FILTER_VALIDATION_EXCEPTION, Value does not exist or does not match filter criteria.: [User_1__c]
Stack Trace: Class.MyTestCases.testExpensetriggers: line 538, column 1

и из него все понятно.

PS: хотя ты пишешь что в момент Деплоя все ОК. тогда не понятно, учитывая, что утверждается, что тесты деплоя раняться ПОСЛЕ "предварительнного" деплоя...

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

[quote="wilder"]на проде сделали что-то ручками а в песочнице нет.[/quote]
вот для этого сендбоксы нужно регулярно рефрешить, иначе они "отрываются" от  реальности Прода


я что-то не могу понять, если вы двигаете из сендбокса, то можно просто использовать Change Set, при попытке его деплоя на экране будет полный текст Error, вроде этого:
[i]System.AssertException: Assertion Failed: message=Update failed. First exception on row 0 with id a1ut0000000KympAAC; first error: FIELD_FILTER_VALIDATION_EXCEPTION, Value does not exist or does not match filter criteria.: [User_1__c] 
Stack Trace: Class.MyTestCases.testExpensetriggers: line 538, column 1[/i]

и из него все понятно.

PS: хотя ты пишешь что в момент Деплоя все ОК. тогда не понятно, учитывая, что утверждается, что тесты деплоя раняться ПОСЛЕ "предварительнного" деплоя... 

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