Last week I spent
identifying and removing dead code. For
what it is worth, the biggest challenge there is proving the code is not
actually used. If you know of a way to
tell if an operator overload is actually called, let me know…
This week I am
focused on moving some of our unit tests to a more proper location. Some of our older tests are part of a large
module that runs tests all across the product.
For instance, suppose I want to test Kmeans clustering. As it stands right now, I either have to work
some command line magic to get just those tests to run, or I run that entire
module which tests areas in which I am not interested (like importing from
Excel).
A better place for
the Kmeans test would be in the same module that holds the Kmeans code. That way, when I run the tests, I focus only
on testing the code in which I am interested and don't need to worry about Excel
importing. There are also some speed
benefits when building the test code.
Right now, the old project has references all over the product. It has to have those wide ranging references
since it has such a wide variety of tests in it. That means a lot of file copying and such
during compile time.
One of the other
benefits I expect to see when done is that the time to build that older test
file will shrink because I am removing code from it. As I move the code to the correct module, I
am updating all the references it used to minimize the amount of references
needed to build. So my module build time
will go up, but not as much as the time saved from the older test pass.
There is one final
benefit to all of this. When I build my
module now, I build both that module and the older test code. This is necessary since I need the testing
provided there in order to test any changes being made in my module. Once I am done with this task, I will only
need to build my module in order to test it since all the tests will be part of
the module. I will no longer have to
"pay the price" of building
that older test project.
Questions, comments,
concerns and criticisms always welcome,
John
No comments:
Post a Comment