Issue #24
-
Aberto MR para corrigir criação de ambiente com Vagrant: https://gitlab.com/noosfero/noosfero/merge_requests/749
Testes em geral falham falham de forma parecida com (rodando apenas
rake
na raiz):test_enable_features#EnableDisableFeaturesTest (49.03s) Rack::Test::Error: Rack::Test::Error: No response yet. Request a page first. /usr/lib/ruby/vendor_ruby/rack/mock_session.rb:56:in `last_response' /usr/lib/ruby/vendor_ruby/rack/test.rb:169:in `follow_redirect!' test/support/integration_test.rb:19:in `login' test/integration/enable_disable_features_test.rb:8:in `test_enable_features' /usr/lib/ruby/vendor_ruby/minitest/test.rb:108:in `block (3 levels) in run' /usr/lib/ruby/vendor_ruby/minitest/test.rb:206:in `capture_exceptions' /usr/lib/ruby/vendor_ruby/minitest/test.rb:105:in `block (2 levels) in run' /usr/lib/ruby/vendor_ruby/minitest/test.rb:258:in `time_it' /usr/lib/ruby/vendor_ruby/minitest/test.rb:104:in `block in run' /usr/lib/ruby/vendor_ruby/minitest.rb:319:in `on_signal' /usr/lib/ruby/vendor_ruby/minitest/test.rb:278:in `with_info_handler' /usr/lib/ruby/vendor_ruby/minitest/test.rb:103:in `run' /usr/lib/ruby/vendor_ruby/minitest/reporters.rb:44:in `run_with_hooks' /usr/lib/ruby/vendor_ruby/minitest.rb:761:in `run_one_method' /usr/lib/ruby/vendor_ruby/minitest.rb:293:in `run_one_method' /usr/lib/ruby/vendor_ruby/minitest.rb:287:in `block (2 levels) in run' /usr/lib/ruby/vendor_ruby/minitest.rb:286:in `each' /usr/lib/ruby/vendor_ruby/minitest.rb:286:in `block in run' /usr/lib/ruby/vendor_ruby/minitest.rb:319:in `on_signal' /usr/lib/ruby/vendor_ruby/minitest.rb:306:in `with_info_handler' /usr/lib/ruby/vendor_ruby/minitest.rb:285:in `run' /usr/lib/ruby/vendor_ruby/minitest.rb:149:in `block in __run' /usr/lib/ruby/vendor_ruby/minitest.rb:149:in `map' /usr/lib/ruby/vendor_ruby/minitest.rb:149:in `__run' /usr/lib/ruby/vendor_ruby/minitest.rb:126:in `run' /usr/lib/ruby/vendor_ruby/minitest.rb:55:in `block in autorun'
São 4 testes de aceitação falhando:
- [ ]
cucumber features/members_block.feature:32
- [*]
cucumber features/plugins.feature:17
- [*]
cucumber features/plugins.feature:22
- [*]
cucumber features/plugins.feature:37
Todos os testes falahando em
plugins/acceptance.feature
tem em comum o passo emstep_definitions/plugin_steps.rb:24
com opçãoenable
. Esta pode ser a fonte da falha nestes três testes com o plugin não sendo habilitado. - [ ]
-
Erro estranho que só acontece comigo: http://pastebin.com/g0nn6whi (test/unit/article_test.rb)
-
Esta atividade terá continuidade ao longo de algumas sprints, iniciou na Sprint 1 e continua na Sprint 2 com data de início em 05/01/16.
-
Rodando
rake selenium
tive22 falhas de 1739 falhas de 171 testes:cucumber -p selenium features/activate_enterprise.feature:68 # Scenario: activate succesffuly an enterprise with foundation_year cucumber -p selenium features/activate_enterprise.feature:85 # Scenario: replace template after enable an enterprise cucumber -p selenium features/activate_enterprise.feature:107 # Scenario: not replace template after enable an enterprise cucumber -p selenium features/categories_block.feature:42 # Scenario: Show submenu if it exists cucumber -p selenium features/categories_block.feature:60 # Scenario: Show only one submenu per time cucumber -p selenium features/edit_article.feature:27 # Scenario: denied access folder for a not logged user cucumber -p selenium features/edit_article.feature:52 # Scenario: Hide token field when show to members is activated cucumber -p selenium features/edit_article.feature:74 # Scenario: show exception users field when you choose the private option cucumber -p selenium features/edit_article.feature:137 # Scenario: display tag list field when creating event cucumber -p selenium features/edit_article.feature:195 # Scenario: create an article inside a folder cucumber -p selenium features/edit_article.feature:214 # Scenario: cancel button back to folder after giving up creating cucumber -p selenium features/forum.feature:14 # Scenario: create a forum cucumber -p selenium features/forum.feature:89 # Scenario: accept terms in topics page cucumber -p selenium features/publish_article.feature:49 # Scenario: getting an error message when publishing article with same name cucumber -p selenium features/secret_community.feature:49 # Scenario: public article on a secret profile should not be displayed cucumber -p selenium features/forum.feature:76 # Scenario: show forum with terms of use for owner cucumber -p selenium features/forum.feature:112 # Scenario: accept terms of use of a forum for others users cucumber -p selenium features/forum.feature:132 # Scenario: redirect user not logged cucumber -p selenium features/media_panel_upload_files.feature:96 # Scenario: select type when create new folder cucumber -p selenium features/media_panel_upload_files.feature:186 # Scenario: filter media with search
Resolvidos:
- features/signup.feature
- features/tiny_mce.feature
- features/manage_users.feature
- features/media_panel_upload_files.feature
Resolvidos com upgrade do selenium e implementação:
- features/edit_article.feature (Menos da linha 74)
- features/forum.feature (Apenas da linha 14)
- features/secret_community.feature
- features/activate_enterprise.feature
- features/publish_article.feature
Desses as falhas remetem aos passos:
./features/step_definitions/tiny_mce_steps.rb:2
1 teste./features/step_definitions/noosfero_steps.rb:537
1 teste./features/step_definitions/web_steps.rb:48
94 testes./features/step_definitions/custom_web_steps.rb:32
4 testes./features/step_definitions/web_steps.rb:122
3 testes./features/step_definitions/activate_enterprise_steps.rb:39
2 testes./features/step_definitions/activate_enterprise_steps.rb:8
1 teste./features/step_definitions/web_steps.rb:16
1 teste
Então o foco será em primeiro eliminar os erros em passos que quebram a maior quantidade de testes.
-
Passei mais um período tentando resolver o erro em
./features/step_definitions/web_steps.rb:48
.Ele na verdade vem do passo anterior que clica em links (
./features/step_definitions/web_steps.rb:40
) e parece afetar apenas links dentro do ColorBox.O selenium diz que o click no link foi bem sucedido, mas tirando uma screenshot da página da para ver que não saiu do lugar.
Tentei ver se era questão dele não estar esperando a página carregar colocando um
sleep 30
após o click. Mas a página continua no mesmo lugar. Pesquisei por problemas conhecidos do colorbox com selenium, mas nada de relevante apareceu (os únicos mencionavam seleção de iframe, mas o noosfero parece não usar iframe).@diguliu tem algum palpite?
Segunda devo continuar nisso.
-
Sobre o
cucumber -p selenium features/categories_block.feature
ambas as falhas parecem ter a mesma fonte nesse feature. A categoria não está expandindo quando clica (nesse caso o clique parece que acontece).Meu palpite é
public/javascripts/application.js:310
. Estou trabalhando para reproduzir no browser o mesmo erro do selenium. -
Com relação ao problema que o @diguliu citou, nos conseguimos replicar ele em quatro ambientes diferentes. Basicamente verificamos que quem tinha o ambiente com o rails 3 stable, conseguia passar nos testes sem o menor problema. Contudo ao mudar para outro ambiente que estava sendo configurado para o rails 4 os erros citados pelo diguliu apareciam. Em geral, quem subia o ambiente do rails 4 do zero sofria com isto.
Após muita investigação descobrimos que o postgresql 9.4 precisa que os campos lc_ctypes e lc_localles do noosfero_development e noosfero_test estejam explicitamente setados. A nova versão do postgres usa a variável de ambiente C em tais campos, que mesmo que esteja apresentando o comportamento esperado (testamos multiplas mudanças de locales nos ambientes) ainda sim apresenta o problema indicado pelo diguliu.
Creio que uma solução definitiva, seja garantir no quick-start que tais campos sejam explicitamente setados com a codificação especifica do ambiente (ao invés de utilizar a varável C). Descobrimos tal problema, ao perceber que o postgres não conseguia fazer os caracteres "Á" ficarem minúsculos.
-
@manzo na verdade é o primeiro comentário do diguliu. O que ele postou esse log:
-
Consertei o problema do manage-users. A confirmação de diálogo não estava funcionando. Não encontrei nada relacionado a isso na versão nova do capybara, mas ao adicionar um
sleep 1
os testes passaram a funcionar. -
Cheguei na causa do erro em
./features/step_definitions/web_steps.rb:40
:Essa sintaxe em
app/views/cms/select_article_type.html.erb
com<li>
aninhados dentro de<a>
faz com que o browser posicione o elemento em si, que será o alvo do clique, fora da posição onde está o e o resto do conteúdo. Para o usuário isso é imperceptível, mas para o capybara destrói o comportamento.Isso tem algumas soluções:
- Modificar o HTML para que o
<a>
fique dentro do<li>
. Essa é a solução mais fácil, mas como o @diguliu falou no IRC isso é ruim pois arruma para agora, mas inevitavelmente algum dia alguém vai colocar outro link nessa estrutura ruim e quebrará novamente os testes - Identificar quando o clique não é bem sucedido e tratar de acordo. Na versão atual do selenium-webdriver instalada (2.48.1) aparentemente não tem como identificar isso e ocorrerá um falso positivo com relação ao clique. Fiz um teste atualizando para o 2.50.0 que agora sim levanta uma excessão nesse caso (ainda que não seja muito boa
Selenium::WebDriver::Error::UnknownError
, sua mensagem é boa o bastanteElement is not clickable at point...
) que podemos tratar fazendo umvisit(find_link(link)[:href])
. Porém essa é a solução difícil e ainda depende de vermos com o @terceiro se é possível essa atualização
Se alguém tiver alguma outra solução é bem vinda :)
- Modificar o HTML para que o
-
faço essa atualização na segunda.
-
MR aberto para corrigir os erros de clique no selenium: https://gitlab.com/noosfero/noosfero/merge_requests/780
-
Rodei todos os testes de selenium e atualizei o status.
São apenas 9 testes falhando.
Algumas coisas que não falhavam da primeira vez que rodei tudo passaram a falhar:
cucumber -p selenium features/forum.feature:76 # Scenario: show forum with terms of use for owner cucumber -p selenium features/forum.feature:112 # Scenario: accept terms of use of a forum for others users cucumber -p selenium features/forum.feature:132 # Scenario: redirect user not logged cucumber -p selenium features/media_panel_upload_files.feature:96 # Scenario: select type when create new folder cucumber -p selenium features/media_panel_upload_files.feature:186 # Scenario: filter media with search
Com um novo ponto de falha
./features/step_definitions/web_steps.rb:16
Tudo isso está atualizado no primeiro comentário.
-
Irei revisar esses testes novos que quebraram.
-
Rodando de novo a partir da master todos os 5 testes novos que eu falei antes passaram agora.
Agora temos só os dois testes do categories_block faltando. E esses são difíceis. Parecem ser o mesmo caso do click que não funciona. Provavelmente nesse caso o problema seja o click de JS que não é pego.
-
Mentira, foi mais fácil do que pareceu. MR aberto: https://gitlab.com/noosfero/noosfero/merge_requests/785
-
os testes estão todos passando! \o/
-
Status changed to closed
-
creio que ninguém viu isso não, reabrindo issue.
-
Status changed to reopened
-
Status changed to closed
-
eu removi
features/template_block_management.feature
; cheguei à conclusão que era redundante. desnecessário e estava atrapalhando mais do que ajudando. -
Lista de testes ainda falhando aleatoriamente:
- [*] cucumber -p selenium features/login.feature:104 (https://gitlab.com/noosfero/noosfero/builds/704465)
- [ ] cucumber -p selenium features/forum.feature:112 (https://gitlab.com/noosfero/noosfero/builds/686073)
- [ ] cucumber -p selenium features/forum.feature:132 (https://gitlab.com/noosfero/noosfero/builds/717024)
- [*] cucumber -p selenium features/signup.feature:235 (https://gitlab.com/noosfero/noosfero/builds/704465)
- [ ] cucumber -p selenium features/profile_domain.feature:21 (https://gitlab.com/noosfero/noosfero/builds/704465)
- [ ] cucumber -p selenium features/approve_article.feature:40 (https://gitlab.com/noosfero/noosfero/builds/706365)
As maiores incidencies são
features/login.feature:104
efeatures/signup.feature:235
o que leva ao palpite de ser algo relacionado a login/persistência de sessão. -
Status changed to reopened
-
Dediquei um período atrás da causa do
features/signup.feature:235
(falha mais vezes) e o máximo que consegui foi ver que ele diz ter preenchido os campos e clicado em "log in" mas ainda está na página de login sem ter preenchido nada (veja screenshot em anexo).Tentei colocar sleep de até 5s. Ele ajuda a diminuir a incidência de falhas, mas não resolve.
Usando o step de verificar se um campo está preenchido, o step passa mas o erro persiste com o mesmo estado de screenshot.
-
Atualizar o selenium-webdriver também não resolve...
-
Hoje tentei sem sucesso trocar o selenium por poltergeist e atualizar o capybara, mas o teste continua falhando.
Por fim notei que praticamente todos os testes de
signup.feature
ao invés de usarAnd I follow "Login"
usavamWhen I go to login page
. Experimentiei fazer a troca e funcionou (deixei os testes repetindo por 1h). Então abri o MR https://gitlab.com/noosfero/noosfero/merge_requests/794.Não sei por que isso funcionou, mas estabiliza os dois testes que mais falharam nos últimos builds. Os demais não parecem estar relacionados.
-
Status changed to closed