Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
indigo_2024.1_documentation:plugin_testing_tutorial [2024/10/18 14:55] – [Main Plugin] davel17indigo_2024.1_documentation:plugin_testing_tutorial [2024/10/21 18:51] (current) – [Folder Structure] davel17
Line 1: Line 1:
 ====== Plugin Testing Guide ====== ====== Plugin Testing Guide ======
-Once you have developed a functioning plugin, it's a good idea to add automated methods to test your code before publishing plugins and plugin updates. "Unit testing" is considered a best practice, and Python provides built-in tools to help facilitate it. There are many ways to formulate unit tests, and this guide demonstrates one way to do it. The approach described below has advantages within the Indigo plugin framework because it allows direct access to the IOM (Indigo Object Model). //**It is extremely important to become familiar with the IOM and Indigo plugin development before attempting to tackle this guide.**//+Once you've developed a functioning plugin, it's a good idea to add automated methods to test your code before publishing plugins and plugin updates. "Unit testing" is considered a best practice, and Python provides built-in tools to help facilitate it. There are many ways to formulate unit tests, and this guide demonstrates one way to do it. The approach described below has advantages within the Indigo plugin framework because it allows direct access to the IOM (Indigo Object Model). //**It is extremely important to become familiar with the IOM and Indigo plugin development before attempting to tackle this guide.**//
  
 ===== Python Unit Testing ===== ===== Python Unit Testing =====
Line 12: Line 12:
   - The ''//unittest//'' library - this is a standard Python library and should be already available.   - The ''//unittest//'' library - this is a standard Python library and should be already available.
   - The ''//python-dotenv//'' library - used for creating and managing Python environment variables.   - The ''//python-dotenv//'' library - used for creating and managing Python environment variables.
-  - An IDE that supports unit testing - which not required, having an IDE that supports unit testing can be very helpful.+  - An IDE that supports unit testing - while not required, having an IDE that supports unit testing can be very helpful.
  
 === Testing Structure === === Testing Structure ===
Line 18: Line 18:
  
 === Environment Variables === === Environment Variables ===
-While optional, it is a good idea to create an environment variable framework that allows you to create and make references to elements of your development environment. Once you have installed ''//python-dotenv//'', create a ''//.ENV//'' file at the ''//Server Plugin//'' level of your plugin (or other location that Indigo's environment path search will find it). It is a plain text file. The advantage of using an environment file is that it is a great place to store references that are unique to your system and -- for shared development -- each developer can have their own individual environment. **<color #ed1c24>IMPORTANT!</color> Remember to add the ''//.ENV//'' file to your ''//.gitignore//'' list.**+While optional, it is a good idea to create an environment variable framework that allows you to create and make references to elements of your development environment. Once you have installed ''//python-dotenv//'', create a ''//.ENV//'' file at the ''//Server Plugin//'' level of your plugin (or another location that Indigo's environment path will search). It is a plain text file. The advantage of using an environment file is that it is a great place to store references that are unique to your system and -- for shared development -- each developer can have their own individual environment. **<color #ed1c24>IMPORTANT!</color> Remember to add the ''//.ENV//'' file to your ''//.gitignore//'' list.**
  
 .ENV file .ENV file
Line 39: Line 39:
      |_ ...      |_ ...
 </code> </code>
-Of course, you can put them anywhere that your plugin can see them. Depending on your development environment, you may also want to add the ''//Tests//'' folder to your ''//.gitignore//'' file to reduce the footprint of your published plugin.+Of course, you can put them anywhere your plugin can see them. Depending on your development environment, you may also want to add the ''//Tests//'' folder to your ''//.gitignore//'' file to reduce the footprint of your published plugin.
  
 === Main Plugin === === Main Plugin ===
Line 146: Line 146:
   * using Indigo's integrations API for remote plugin testing.    * using Indigo's integrations API for remote plugin testing. 
  
-These approaches are a bit more "traditional", can often be run directly inside an IDE and are beyond the scope of this guide. +These approaches are a bit more "traditional", can often be run directly inside an IDEand are beyond the scope of this guide. 
  • /www/perceptive/wiki/data/attic/indigo_2024.1_documentation/plugin_testing_tutorial.1729263355.txt.gz
  • Last modified: 2024/10/18 14:55
  • by davel17