Testing Area/Behat Testing/Setup: Difference between revisions
From Mahara Wiki
< Testing Area | Behat Testing
mNo edit summary |
|||
Line 18: | Line 18: | ||
$cfg->behat_wwwroot = 'http://localhost:8000'; // Must be this | $cfg->behat_wwwroot = 'http://localhost:8000'; // Must be this | ||
$cfg->behat_selenium2 = "http://127.0.0.1:4444/wd/hub"; // Must be this | $cfg->behat_selenium2 = "http://127.0.0.1:4444/wd/hub"; // Must be this | ||
// If you want failed step screenshots appear | |||
$cfg->behat_view_screenshots = true; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 33: | Line 36: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<span id="chown"></span> | <span id="chown"></span> | ||
6. Change the directory and any subdirectories permissions to be owned by apache user (check the directory is correct): | 6. Change the directory and any subdirectories permissions to be owned by apache user (check the directory is correct): | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ sudo chown -R www-data:www-data /var/lib/maharadata/master_behat | $ sudo chown -R www-data:www-data /var/lib/maharadata/master_behat | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* For Ubuntu, apache runs with user www-data | *For Ubuntu, apache runs with user www-data | ||
* For Centos, apache runs with user apache | *For Centos, apache runs with user apache | ||
7. Run Behat tests (change into your Mahara code directory first) as the apache user: | 7. Run Behat tests (change into your Mahara code directory first) as the apache user: | ||
Line 71: | Line 74: | ||
[[Category:Behat]] | [[Category:Behat]] | ||
== Running Behat tests with html report and screenshots on failed steps == | ==Running Behat tests with html report and screenshots on failed steps== | ||
To run tests with html output, add the flag 'html' to your test run command, e.g: | To run tests with html output, add the flag 'html' to your test run command, e.g: | ||
Line 89: | Line 92: | ||
Hopefully we will rig up the report to link to the screenshot soon. | Hopefully we will rig up the report to link to the screenshot soon. | ||
== How to Run Mahara behat test on Chrome for versions older than 17.04== | ==How to Run Mahara behat test on Chrome for versions older than 17.04== | ||
{{note|Mahara behat is running on chrome driver by default in 17:04+}} | {{note|Mahara behat is running on chrome driver by default in 17:04+}} | ||
Line 116: | Line 119: | ||
for example ./test/behat/mahara_behat.sh run example.feature | for example ./test/behat/mahara_behat.sh run example.feature | ||
== Debugging == | ==Debugging== | ||
Go here for tips: https://wiki.mahara.org/wiki/Testing/Behat_Testing/Error_%26_Solutions | Go here for tips: https://wiki.mahara.org/wiki/Testing/Behat_Testing/Error_%26_Solutions |
Revision as of 15:41, 20 Mayıs 2022
1. Set up your developer environment if you haven't already done so.
2. Install Behat's dependencies:
$ sudo apt-get install curl openjdk-8-jre-headless
3. Add the following config settings to the bottom of your Mahara config.php file inside the htdocs/ subdirectory of the Mahara codebase.
// Behat config
$cfg->behat_dbprefix = 'behat_'; // must not empty
$cfg->behat_dataroot = "/var/lib/maharadata/master_behat"; // The Behat copy of maharadata.
$cfg->behat_wwwroot = 'http://localhost:8000'; // Must be this
$cfg->behat_selenium2 = "http://127.0.0.1:4444/wd/hub"; // Must be this
// If you want failed step screenshots appear
$cfg->behat_view_screenshots = true;
4. Make your Behat data directory (check this matches what you set in config.php):
$ sudo mkdir /var/lib/maharadata/master_behat
5. Make the directory and any subdirectories writeable by Mahara (check the directory is correct):
$ sudo chmod 777 -R /var/lib/maharadata/master_behat
6. Change the directory and any subdirectories permissions to be owned by apache user (check the directory is correct):
$ sudo chown -R www-data:www-data /var/lib/maharadata/master_behat
- For Ubuntu, apache runs with user www-data
- For Centos, apache runs with user apache
7. Run Behat tests (change into your Mahara code directory first) as the apache user:
$ cd
$ cd code/mahara
./test/behat/mahara_behat.sh run
Or if you have sudo access:
$ cd
$ cd code/mahara
sudo -u www-data ./test/behat/mahara_behat.sh run
For the first time of running Behat, you need to wait for the Behat environment initialisation. This can take a while.
To run all tests:
./test/behat/mahara_behat.sh run
To run your specific tests marked with @yourtags:
./test/behat/mahara_behat.sh run @yourtags
To run a particular feature file:
./test/behat/mahara_behat.sh run my_file.feature
The run / runheadless / rundebug / rundebugheadless / runfresh are interchangable with run in above commands
Running Behat tests with html report and screenshots on failed steps
To run tests with html output, add the flag 'html' to your test run command, e.g:
./test/behat/mahara_behat.sh run create_page.feature html
This will automatically open an html report of the test run in your browser. If there were failed steps, the the html report plugin takes a screenshot of the page that failed. You can find the screenshots in your behat dataroot (usually /var/lib/maharadata/master_behat) at the following path: behat/html_results/<feature title>/<scenario title>.png
If you set
$cfg->behat_view_screenshots = true;
in your config.php file then the images will be opened up in image browser (Ubuntu eog only)
Hopefully we will rig up the report to link to the screenshot soon.
How to Run Mahara behat test on Chrome for versions older than 17.04
This is steps for older versions of Mahara
1. Download chromedriver here http://www.seleniumhq.org/download/ ( download the latest release)
2. Start selenium Server with chrome driver
$ java -jar selenium-server-standalone-2.53.1.jar -Dwebdriver.chrome.driver=path of chromedriver
3. Change the behat.yml file as follows,
Here is the file path var/lib/maharadata/master_behat/behat.yml
when you open the beaht.yml file replace the following code with the lines that contain sessions to goutte=NUll( Niranjan or Lovesh can exactly tell you where to replcae the code if it is confusing) and save it
javascript_session: selenium2
selenium2: browser: chrome goutte: ~
4. Run the behat test without rundebug
for example ./test/behat/mahara_behat.sh run example.feature
Debugging
Go here for tips: https://wiki.mahara.org/wiki/Testing/Behat_Testing/Error_%26_Solutions