Package: pynguin
PynguinPynguin (IPA: ˈpɪŋɡuiːn),
the
PYthoN
General
UnIt
test
geNerator,
is a tool that allows developers to generate unit tests automatically.Testing software is often considered to be a tedious task.
Thus, automated generation techniques have been proposed and mature tools exist—for
statically typed languages, such as Java.
There is, however, no fully-automated tool available that produces unit tests for
general-purpose programs in a dynamically typed language.
Pynguin is, to the best of our knowledge, the first tool that fills this gap
and allows the automated generation of unit tests for Python programs.Internal Pipeline StatusAttentionPlease Note:Pynguin executes the module under test!As a consequence, depending on what code is in that module,
running Pynguin can cause serious harm to your computer,
for example, wipe your entire hard disk!
We recommend running Pynguin in an isolated environment;
use, for example, a Docker container to minimize the risk of damaging
your system.Pynguin is only a research prototype!It is not tailored towards production use whatsoever.
However, we would love to see Pynguin in a production-ready stage at some point;
please report your experiences in using Pynguin to us.PrerequisitesBefore you begin, ensure you have met the following requirements:You have installed Python 3.10 (we have not yet tested with Python
3.11, there might be some problems due to changed internals regarding the byte-code
instrumentation).Attention:Pynguin now requires Python 3.10!  Older versions are no longer
supported!You have a recent Linux/macOS/Windows machine.Please consider reading theonline documentationto start your Pynguin adventure.Installing PynguinPynguin can be easily installed using thepiptool by typing:pipinstallpynguinMake sure that your version ofpipis that of a supported Python version, as any
older version is not supported by Pynguin!Using PynguinBefore you continue, please read thequick start guidePynguin is a command-line application.
Once you installed it to a virtual environment, you can invoke the tool by typingpynguininside this virtual environment.
Pynguin will then print a list of its command-line parameters.A minimal full command line to invoke Pynguin could be the following,
where we assume that a projectfoois located in/tmp/foo,
we want to store Pynguin's generated tests in/tmp/testgen,
and we want to generate tests using a whole-suite approach for the modulefoo.bar(wrapped for better readability):pynguin\--project-path/tmp/foo\--output-path/tmp/testgen\--module-namefoo.barPlease find a more detailed example in thequick start guide.Contributing to PynguinFor the development of Pynguin you will need thepoetrydependency management and packaging tool.
To start developing, follow these steps:Clone the repositoryChange to thepynguinfolder:cd pynguinCreate a virtual environment and install dependencies usingpoetry:poetry installMake your changesRunmake checkto verify that your changes pass all checksPlease see thepoetrydocumentationfor more information on this tool.ContributorsPynguin is developed at theChair of Software Engineering IIof theUniversity of Passau.Maintainer:Stephan LukasczykContributors:Juan Altmayer PizzornoLucas BergTucker BlueGordon FraserAbdur-Rahmaan JanhangeerMaximilian KönigsederFlorian KroißSimon LabrenzRoman LevinJuan Julián Merelo GuervósLukas SteffensFlorian StraubingerSara TavaresDevelopment using PyCharm.If you want to use the PyCharm IDE you have to set up a few things:Importpynguininto PyCharm.Let PyCharm configure configure a virtual environment usingpoetry.Set the default test runner topytestSet the DocString format toGoogleLicenseThis project is licensed under the terms of theMIT License.
Pynguin was using the GNU Lesser General Public License (LGPL) until version 0.29.0,
its licence was changed with version 0.30.0.Star History