This is one of my long term plan, I started doing Test Driven Development(TDD) for last 4-5 year. It changed the way, how I did my developments.
As a FX artist become developer, I use to write codes in single files/modules. Every functions, variable, etc… will be in the same module. Once my lead ask me to write unittests for my python tools, it was a shock for me. I don’t know what to do(actually don’t know, what a unittest is in python). Started looking into others tests and codes. Be honest, it didn’t took a whole lot of time to understand it. Once I understood how TDD works, or how you can write a testable code. It is like playing a game.
I was trying to make as framework for testing the code I develops for me. And I finally have a starting point for that. I started a new PyPi project and added a basic structure now.
PyPi Project : bcTesting
PyPi Page : https://pypi.python.org/pypi/bcTesting
GitHub Link : https://github.com/barishcb/testing
Installing bcTesting is very simple. Once you download and unzip the package, you just have to execute the standard python setup.py install. The setup script will then place the bcTesting module into site-packages in your Python’s installation library.
Alternatively, since bcTesting is listed in the Python Package Index (PyPI), you can install it using your favorite Python packaging/distribution tool, for example with:
> pip install bcTesting
It’s recommended to run _build_tables.py in the bcTesting code directory after installation to make sure the parsing tables are pre-generated. This can make your code run faster.
How to Use
Using bcTesting is very simple. As it is just extension of testtools, you can directly import it and use it in your code. You have to replace bcTesting.testBase.TestCase insted of unittest.TestCase or teststools.TestCase.
- Testing Framework for Autodesk Maya (Currently under development)
- Testing Framework for The Foundry Nuke
- Testing Framework for The Foundry Katana
If you want to look into the implementation please check this project.
Project : bcTools
GitHub Link : https://github.com/barishcb/tools
I hope this will once the project is stable and matured. It will make your like easy as a visual effect python developer. This is still under development, so there will issues feel free to contact me. Aslo hoping suggestions and improvements also.