%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Spalten
\usepackage{multicol}

%Kopfzeile
\ihead{PHP}
\chead{}
\ohead{http://kohnlehome.de/php/phpunit-netbeans.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
PHPUnit mit XAMPP und Netbeans
\end{center}

\section{Entwicklungsumgebung einrichten}
\subsection*{Windows 10}
\begin{itemize}
\item UAC deaktivieren
\end{itemize}

\subsection*{XAMPP 7.0.2 (32 bit)}
\begin{itemize}
\item Download: \href{https://www.apachefriends.org/download.html}{apachefriends.org/download.html}
\end{itemize}

\subsection*{PHP 7.0.2}
\begin{itemize}
\item Pfad zur PATH-Variable hinzufügen: C:\textbackslash xampp\textbackslash php
\item Testen: \texttt{php -v}
\end{itemize}

\subsection*{PHPUnit 5.2.6 global installieren}
\begin{itemize}
\item Download: \href{https://phpunit.de/}{phpunit.de}
\item Kopieren: phpunit-5.2.6.phar nach C:\textbackslash xampp\textbackslash php\textbackslash phpunit-5.2.6.phar
\item Erstelle Wrapper-Datei C:\textbackslash xampp\textbackslash php\textbackslash phpunit.cmd
\begin{itemize}
\item Inhalt: \begin{verbatim}
 @php "%~dp0phpunit-5.2.6.phar" %*
\end{verbatim}
\end{itemize}
\item Testen: \texttt{phpunit --version}
\end{itemize}

\subsection*{PHPUnit Skeleton Generator 2.0.1 global installieren}
\begin{itemize}
\item Download: \href{https://phar.phpunit.de/phpunit-skelgen.phar}{phar.phpunit.de/phpunit-skelgen.phar}
\item Kopieren: phpunit-skelgen-2.0.1.phar nach C:\textbackslash xampp\textbackslash php\textbackslash phpunit-skelgen-2.0.1.phar
\item Erstelle Wrapper-Datei C:\textbackslash xampp\textbackslash php\textbackslash phpunit-skelgen.cmd
\begin{itemize}
\item Inhalt: \begin{verbatim}
@php "%~dp0phpunit-skelgen-2.0.1.phar" %*
\end{verbatim}
\end{itemize}
\item Testen: \texttt{phpunit-skelgen --version}
\end{itemize}

\subsection*{Netbeans 8.1 PHP (64 bit)}
\begin{itemize}
\item Download: \href{https://netbeans.org/downloads/}{netbeans.org/downloads}
\item Tools $\rightarrow$ Options $\rightarrow$ PHP $\rightarrow$ Frameworks \& Tools $\rightarrow$ PHPUnit
\begin{itemize}
\item PHPUnit Script: C:\textbackslash xampp\textbackslash php\textbackslash phpunit.cmd
\item Skeleton Generator Script: C:\textbackslash xampp\textbackslash php\textbackslash phpunit-skelgen.cmd
\end{itemize}
\end{itemize}


\newpage

\section{Projekt erstellen}
\subsection*{Projektverzeichnisstruktur erstellen}
\begin{verbatim}
C:\xampp\htdocs\projektname\
                     |-src\
                     |-tests\
\end{verbatim}

\subsection*{Netbeans-Projekt erstellen}
\begin{itemize}
\item File $\rightarrow$ New Project $\rightarrow$ PHP $\rightarrow$ PHP Application with Existing Sources
\begin{itemize}
\item Sources Folder: C:\textbackslash xampp\textbackslash htdocs\textbackslash projektname\textbackslash src
\item Project Name: Projektname
\item PHP Version: PHP 5.6 (7 gibt es noch nicht)
\end{itemize}
\end{itemize}

\subsection*{Eigenschaften des PHP-Projekts}
\begin{itemize}
\item Properties $\rightarrow$ Testing: PHPUnit, Test Directories: …\textbackslash projektname\textbackslash tests
\end{itemize}

\subsection*{Beispielklasse}
\begin{verbatim}
class Beispiel {
    public function summe($a, $b){
        return $a + $b;
    }
}
\end{verbatim}

\subsection*{Testklasse}
\begin{verbatim}
class BeispielTest extends PHPUnit_Framework_TestCase {
    function testAddition(){
            $b = new Beispiel();
            $erg = $b->summe(3, 2);
            $this->assertEquals(5,$erg);
    }
}
\end{verbatim}

\subsection*{Projekt testen}
\begin{itemize}
\item Run $\rightarrow$ Test Project
\end{itemize}

\end{document}
