| <!-- | |
| Licensed to the Apache Software Foundation (ASF) under one | |
| or more contributor license agreements. See the NOTICE file | |
| distributed with this work for additional information | |
| regarding copyright ownership. The ASF licenses this file | |
| to you under the Apache License, Version 2.0 (the | |
| "License"); you may not use this file except in compliance | |
| with the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, | |
| software distributed under the License is distributed on an | |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| KIND, either express or implied. See the License for the | |
| specific language governing permissions and limitations | |
| under the License. | |
| --> | |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Calculator (Codeception) - sample application for NetBeans IDE</title> | |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
| <style type="text/css"> | |
| /** general **/ | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| font-family: Tahoma, Geneva, sans-serif; | |
| font-size: 100%; | |
| line-height: 1em; | |
| color: #414141; | |
| } | |
| h1 { | |
| margin-bottom: 30px; | |
| } | |
| h2 { | |
| margin-bottom: 20px; | |
| } | |
| h3 { | |
| font-size: 1em; | |
| color: #4c7cbd; | |
| margin-bottom: 12px; | |
| } | |
| h3 a { | |
| color: #4c7cbd; | |
| text-decoration: none; | |
| } | |
| h3 a:hover { | |
| text-decoration: underline; | |
| } | |
| p { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| .p { | |
| margin-bottom: 14px; | |
| } | |
| a { | |
| color: #414141; | |
| outline: none; | |
| } | |
| a:hover { | |
| text-decoration: none; | |
| } | |
| /** lists **/ | |
| ul { | |
| list-style: circle; | |
| } | |
| li { | |
| margin-left: 30px; | |
| } | |
| ul.list { | |
| list-style: none; | |
| } | |
| .list li { | |
| width: 100%; | |
| overflow: hidden; | |
| vertical-align: bottom; | |
| padding: 3px 0 20px 0; | |
| margin-left: 0; | |
| } | |
| .list li img { | |
| float: left; | |
| margin: -3px 15px 0 0; | |
| width: 16px; | |
| height: 16px; | |
| } | |
| .list p.description { | |
| margin-bottom: 5px; | |
| } | |
| .list span.label { | |
| font-weight: bold; | |
| } | |
| /** other **/ | |
| .fleft { | |
| float: left; | |
| } | |
| .fright { | |
| float: right; | |
| } | |
| .clear { | |
| clear: both; | |
| } | |
| .wrapper { | |
| width: 100%; | |
| overflow: hidden; | |
| } | |
| #main { | |
| width: 1000px; | |
| margin: 0 auto; | |
| position: relative; | |
| } | |
| #content, #footer { | |
| font-size: 0.75em; | |
| } | |
| .col-1, .col-2, .col-3 { | |
| float: left; | |
| } | |
| #page #content .col-1 { | |
| width: 250px; | |
| margin-right: 20px; | |
| } | |
| #page #content .col-2 { | |
| width: 650px; | |
| min-height: 500px; | |
| } | |
| #footer { | |
| height: 89px; | |
| } | |
| /** content **/ | |
| #content { | |
| padding: 20px 40px 0 40px; | |
| } | |
| #content .indent { | |
| padding: 14px 0 0 9px; | |
| } | |
| #content p { | |
| line-height: 1.17em; | |
| } | |
| /** footer **/ | |
| #footer .indent { | |
| padding: 37px 40px 20px 40px; | |
| } | |
| #footer img { | |
| position: relative; top: -4px; | |
| } | |
| #footer a { | |
| color: #4c7cbd; | |
| } | |
| </style> | |
| </head> | |
| <body id="page"> | |
| <div id="main"> | |
| <!-- content --> | |
| <div id="content"> | |
| <div class="wrapper"> | |
| <div class="col-2"> | |
| <div class="indent"> | |
| <h1>Calculator (Codeception)</h1> | |
| <h2>NetBeans PHP Sample Application</h2> | |
| <h3>What is Calculator?</h3> | |
| <p class="p">Calculator is a simple calculator that supports basic arithmetical operations. | |
| This PHP application is created to highlight PHP features supported by NetBeans IDE. | |
| </p> | |
| <p class="p"> | |
| <b>This sample is not intended to be used in a production environment without any changes.</b> | |
| </p> | |
| <h3>This sample demonstrates the following features:</h3> | |
| <ul class="p"> | |
| <li>unit testing using Codeception</li> | |
| <li>creating unit tests using <code>codecept generate:test command</code></li> | |
| <li>code coverage of project files</li> | |
| </ul> | |
| <h3>Requirements</h3> | |
| Follow these before you run the sample: | |
| <ul class="p"> | |
| <li>Install NetBeans IDE with PHP support</li> | |
| <li>Install and configure PHP Runtime</li> | |
| <li>Install all dependencies using <a href="https://getcomposer.org/">Composer</a> | |
| (click on project and invoke <i>Composer</i> > <i>Install (dev)</i>)<br> | |
| <i>Note:</i> Codeception can also be installed <a href="http://codeception.com/install" target="_blank">globally as PHAR file</a></li> | |
| <li>For debugging and code coverage, <a href="http://www.xdebug.org/">Xdebug</a> PHP extension is required</li> | |
| </ul> | |
| <h3>What is included?</h3> | |
| <ul class="p"> | |
| <li>NetBeans <i>PHP Application</i> Project</li> | |
| </ul> | |
| <h3>Before the start</h3> | |
| <ul class="p"> | |
| <li>If you want to try the sample out, follow <a href="#getting_started">Getting Started</a> guidelines.</li> | |
| <li>In case if you want to try debugging features of the NetBeans IDE, | |
| follow the <a href="#debugging">Debugging</a> guidelines.</li> | |
| </ul> | |
| <h3 id="getting_started">Getting Started</h3> | |
| <ol class="p"> | |
| <li> | |
| For the very first run, Codeception must be installed via Composer globally (see Requirements). | |
| </li> | |
| <li> | |
| To initialize Codeception, Right-click the project node and select <i>Codeception > Bootstrap</i>. | |
| </li> | |
| <li> | |
| Now, create a unit test for CalculatorEx class - open it in the editor | |
| and select <i>Tools > Create/Update Tests</i>. | |
| Then, select <i>test</i> command and <i>unit</i> suite in the Create Test dialog. | |
| </li> | |
| <li> | |
| Add test cases for CalculatorEx class to the test class like CalculatorTest class. | |
| </li> | |
| <li> | |
| To enable coverage put the below code in the unit suite configuration file <i>tests/unit.suite.yml</i>. | |
| <pre><code> | |
| coverage: | |
| enabled: true | |
| include: | |
| - src/* | |
| </code></pre> | |
| </li> | |
| <li> | |
| Simply test the project. Right-click the project node and select <i>Test</i>. | |
| IDE will inform you about the test results (window with test results can be opened manually). | |
| </li> | |
| <li> | |
| For code coverage, open its report (right-click the project node and select <i>Code Coverage > Show Report...</i>) | |
| and <i>Run All Tests</i> if there are no data available yet. Open <i>Calculator.php</i> file from the list of the files | |
| to see which lines are and which lines are not tested. | |
| </li> | |
| <li>Play futher with the sample :)</li> | |
| </ol> | |
| <h3 id="debugging">Debugging</h3> | |
| <p class="p"> | |
| These steps should enable you the debugging option at the sample project, | |
| <a href="http://wiki.netbeans.org/HowToConfigureXDebug" target="_blank">if you already have PHP debugger (Xdebug) | |
| installed and configured</a>.<br> | |
| For demonstrating the PHP debugger in NetBeans, try the following: | |
| </p> | |
| <ol class="p"> | |
| <li>Open source class <i>Calculator.php</i> or <i>CalculatorTest.php</i> in the editor.</li> | |
| <li>Put breakpoint on some line with PHP code.</li> | |
| <li>To debug, right-click <i>CalculatorTest.php</i> and select <i>Debug</i>.</li> | |
| </ol> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- footer --> | |
| <div id="footer"> | |
| <div class="indent"> | |
| <div class="fleft">2019 © Copyright The Apache Software Foundation, All rights reserved</div> | |
| </div> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |