selenium tests are not running in gate and many are broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| OpenStack Dashboard (Horizon) |
High
|
Richard Jones |
Bug Description
running selenium tests locally, I see
Running Horizon application tests
[snip]
Ran 160 tests in 106.527s
FAILED (SKIP=153, errors=3, failures=2)
Running openstack_dashboard tests
[snip]
Ran 1385 tests in 168.336s
FAILED (SKIP=1374, errors=4, failures=5)
Sample output from the gate jobs:
Running Horizon application tests
2015-07-16 12:21:50.680 |
2015-07-16 12:21:57.048 |
2015-07-16 12:21:57.049 | -------
2015-07-16 12:21:57.049 | Ran 153 tests in 6.368s
2015-07-16 12:21:57.049 |
2015-07-16 12:21:57.077 | OK (SKIP=153)
2015-07-16 12:21:57.131 | nosetests horizon --nocapture --nologcapture --exclude-
2015-07-16 12:21:57.131 | Creating test database for alias 'default'...
2015-07-16 12:21:57.131 | Destroying test database for alias 'default'...
2015-07-16 12:21:57.138 | Running openstack_dashboard tests
2015-07-16 12:22:00.595 | WARNING:root:No local_settings file found.
2015-07-16 12:22:00.993 |
2015-07-16 12:22:09.731 |
2015-07-16 12:22:09.731 | -------
2015-07-16 12:22:09.731 | Ran 1372 tests in 8.737s
2015-07-16 12:22:09.732 |
2015-07-16 12:22:09.759 | OK (SKIP=1371)
description: | updated |
Changed in horizon: | |
assignee: | nobody → Gurpal Hundal (ghundal) |
Changed in horizon: | |
milestone: | liberty-2 → liberty-3 |
Richard Jones (r1chardj0n3s) wrote : | #1 |
Changed in horizon: | |
assignee: | Gurpal Hundal (ghundal) → David Lyle (david-lyle) |
Fix proposed to branch: master
Review: https:/
Changed in horizon: | |
status: | New → In Progress |
Richard Jones (r1chardj0n3s) wrote : | #3 |
Recording some progress:
I have identified that the table checkbox bugs are caused by the absence of Javascript in the pages: ironically caused by one of my reorganisation patches (https:/
I've spent some time trying to reconstruct the Javascript loading required to make the page work but there's something I'm missing; just adding horizon.tables.js and its dependencies, and invoking horizon.init() doesn't cause the checkbox to reappear. I'll need to poke into the horizon.tables.js source more tomorrow.
Additionally, we might need to re-think the move of all the Horizon JS loading over to openstack_dashboard - I suspect we'll need to have a split where horizon has a template that knows how to load its JS components, and openstack_dashboard includes that, and adds its own JS components. I recall arguing for this back in Vancouver, but I was assured no JS was needed in the Horizon tests - which technically was incorrect but in a practical sense was correct since the Selenium tests weren't being exercised :)
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit 654b1a61b0874d1
Author: David Lyle <email address hidden>
Date: Mon Aug 17 23:54:29 2015 -0600
Fixes Selenium tests for openstack_dashboard
When the javascript autodiscover code was added, it was not added to the
test settings. This caused javascript files to be missed and numerous
errors in the Selenium tests.
This patch fixes the openstack_dashboard part of the Selenium tests
only.
Co-Authored-By: Richard Jones<email address hidden>
Partial-Bug: #1475387
Change-Id: Ib8d4d6ee8199e3
Changed in horizon: | |
assignee: | David Lyle (david-lyle) → Richard Jones (r1chardj0n3s) |
Fix proposed to branch: master
Review: https:/
Changed in horizon: | |
assignee: | Richard Jones (r1chardj0n3s) → Timur Sufiev (tsufiev-x) |
Changed in horizon: | |
assignee: | Timur Sufiev (tsufiev-x) → Richard Jones (r1chardj0n3s) |
Changed in horizon: | |
assignee: | Richard Jones (r1chardj0n3s) → Timur Sufiev (tsufiev-x) |
Changed in horizon: | |
assignee: | Timur Sufiev (tsufiev-x) → Richard Jones (r1chardj0n3s) |
Richard Jones (r1chardj0n3s) wrote : | #6 |
The tests are now running in the gate (non-voting) as of https:/
Richard Jones (r1chardj0n3s) wrote : | #7 |
So, we still have an issue with instability in the selenium tests in the gate. Specifically, these tests can "fail" in the gate at random:
test_create_
test_create_
test_modal_
test_modal_
There's probably some timing issue, since these are checking for an element to be updated in response to an input being set. I am going to investigate further.
Richard Jones (r1chardj0n3s) wrote : | #8 |
Actually, I get reliable failures in those tests locally now. I guess something broke between David's fix and now.
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit 7a3d5be9bc82b5c
Author: Richard Jones <Richard Jones>
Date: Fri Aug 21 12:20:29 2015 +1000
Fix the selenium LazyLoadedTabsTests
These tests were broken when we removed Javascript loading
from the test base.html during the ngReorg. A minimal set
of Javascript and configuration has been re-added.
Also note that the loadAngular function from the tech-debt
utils service has been moved into the only place it's
used to reduce configuration overhead.
Partial-Bug: #1475387
Change-Id: If5472e93d79416
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit 274921e8b480fe7
Author: Vlad Okhrimenko <email address hidden>
Date: Tue Jul 7 11:16:14 2015 +0300
Drop QUnit JS tests in favor of Jasmine
Add `Instance`, `Tables`, `Templates`, `Messages`,
`Modals` Jasmine tests. Removed corresponding `Qunit`
javascript tests and dependencies on qunit library.
Partial-Bug: #1475387
Implements: blueprint replace-
Change-Id: Ia415b65fb7b629
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit 46e396d7c0a70bb
Author: Richard Jones <email address hidden>
Date: Mon Aug 31 14:20:17 2015 +1000
Correct usage of angular.element
The $element usage here was incorrect ($element is not callable),
the code actually wanted to use angular.element()
This resulted in the image format element not updating correctly,
and the selenium test failing (correctly).
Change-Id: I2ffbcc831b3ff4
Partial-Bug: 1475387
Change abandoned by Richard Jones (<email address hidden>) on branch: master
Review: https:/
Reason: The other patch merged.
Changed in horizon: | |
milestone: | liberty-3 → liberty-rc1 |
Changed in horizon: | |
importance: | Critical → High |
milestone: | liberty-rc1 → mitaka-1 |
Richard Jones (r1chardj0n3s) wrote : | #13 |
I think this bug should be closed; there are two specific bugs open on Horizon that address the remaining issues in the Selenium suite.
https:/
https:/
Changed in horizon: | |
status: | In Progress → Fix Committed |
Changed in horizon: | |
status: | Fix Committed → Fix Released |
I've just started to look into this, and there's a bunch of separate reasons why the tests are failing:
horizon. test.tests. selenium_ tests:LazyLoade dTabsTests
Three tests here fail because the "select all" user interface element for the checkbox list does not appear in the interface any longer. I have no idea whether: a) it should be appearing, and a bug is causing it not to, b) it shouldn't be appearing and the test is incorrect or c) it should be appearing if the interface is updated somehow to be configured correctly.
horizon. test.tests. selenium_ tests.LazyLoade dTabsTests. test_delete_ button_ is_disabled_ on_empty_ selection
This test fails because the action button ("delete", but for some reason called "sell puppies" in the test) isn't disabled when there is no selection. It is not clear whether a) this is an actual regression (bug) of the feature, b) the test itself is buggy and not configuring itself correctly to allow the disabling feature to work or c) the feature has been removed and should no longer be tested.
horizon. test.tests. selenium_ tests:BrowserTe sts.test_ qunit
These tests all fail because the global "horizon" no longer exists. It is up for question whether we shouldn't just migrate the 14 qunit tests over to the new javascript test runner, or even just delete the tests altogether.
openstack_ dashboard. dashboards. identity. projects. tests:SeleniumT ests.test_ inline_ editing_ cancel
The browser window displays a 500 error attempting to run this test. Could be an actual error in inline editing.
Also, a mox "error" (ie assertion failure) in tearDown, probably just a knock-on effect of the 500 error. Why the are the mox assertions in *tearDown* :(
openstack_ dashboard. dashboards. identity. projects. tests:SeleniumT ests.test_ inline_ editing_ update
The browser window displays a 500 error attempting to run this test. Could be an actual error in inline editing.
(also see previous comment about bloody mox)
openstack_ dashboard. dashboards. identity. projects. tests:SeleniumT ests.test_ membership_ list_loads_ correctly
I believe the test has fallen out of sync with the structure of the page it is testing here.