Page MenuHomePhabricator

wikibase browser tests fail on jenkins (now that jenkins includes CirrusSearch)
Closed, ResolvedPublic


wikibase browser tests fail on jenkins now that we are including CirrusSearch.

this is because CirrusSearch loads a special entry point on jenkins for jobs in non CLI mode (e.g. browser tests). The entry point has stuff like:

// Dependencies                                                                                     
// Jenkins will automatically load these for us but it makes this file more generally useful        
// to require them ourselves.                                                                       
require_once( "$IP/extensions/MwEmbedSupport/MwEmbedSupport.php" );                                 
require_once( "$IP/extensions/TimedMediaHandler/TimedMediaHandler.php" );                           
require_once( "$IP/extensions/PdfHandler/PdfHandler.php" );                                         
require_once( "$IP/extensions/Cite/Cite.php" );

The above extensions do not get loaded for wikibase jobs, and thus simple tests fail.

Cirrus uses Cindy the browser test bot which maybe runs on jenkins and uses this? Maybe the check for including this entry point to be more specific to Cindy and not so broad to also get included for wikbase browser tests.

10:20:43 + vendor/bin/bundle exec cucumber --color --tags @integration --tags '~@skip' --format pretty --format junit --out /mnt/jenkins-workspace/workspace/mwext-mw-selenium-composer@2/log/junit
10:20:47 # Wikidata item tests
10:20:47 #
10:20:47 # License:: GNU GPL v2+
10:20:47 #
10:20:47 # feature the functionality of a non existing item page
10:20:47 @integration
10:20:47 Feature: Non existing item
10:20:47   Scenario: Edit tab                          # features/non_existing_item.feature:10
10:21:08     Given I am on an non existing item page   # features/step_definitions/non_existing_item_steps.rb:8
10:21:08     Then check if this page behaves correctly # features/step_definitions/non_existing_item_steps.rb:12
10:21:08       expected #<TrueClass:20> => true
10:21:08            got #<FalseClass:0> => false
10:21:08       Compared using equal?, which compares object identity,
10:21:08       but expected and actual are not the same object. Use
10:21:08       `expect(actual).to eq(expected)` if you don't care about
10:21:08       object identity in this example.
10:21:08        (RSpec::Expectations::ExpectationNotMetError)
10:21:08       ./features/step_definitions/non_existing_item_steps.rb:14:in `block (2 levels) in <top (required)>'
10:21:08       ./features/step_definitions/non_existing_item_steps.rb:13:in `/^check if this page behaves correctly$/'
10:21:08       features/non_existing_item.feature:12:in `Then check if this page behaves correctly'
10:21:12 Failing Scenarios:
10:21:12 cucumber features/non_existing_item.feature:10 # Scenario: Edit tab
10:21:12 1 scenario (1 failed)
10:21:12 2 steps (1 failed, 1 passed)
10:21:12 0m25.016s
10:21:12 Build step 'Execute shell' marked build as failure
10:21:12 [PostBuildScript] - Execution post build scripts.

Event Timeline

aude raised the priority of this task from to High.
aude updated the task description. (Show Details)
aude added projects: Wikidata, CirrusSearch.
aude added a subscriber: aude.
Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change 256916 had a related patch set uploaded (by Aude):
Make browsertest check for including Jenkins.php more specific

Change 256916 merged by jenkins-bot:
Disable check for Jenkins.php browser tests entry point

debt claimed this task.
debt added a subscriber: debt.

Closing this - looks like it's been in place for about 8 months. Please re-open if there is an issue, or write another bug.