Squish/Using a Decorator to Profile Tests

From Qt Wiki
< Squish
Revision as of 08:38, 25 November 2017 by AutoSpider (talk | contribs) (Move [[Category::Tools::Squish]] -> [[Category::Squish]])
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


Use a decorator to profile tests

If your Squish tests are very intensive, or you have hundreds of them, you can run them trough a profiler from time to time. This will enable you to see where you're spending most of your time and will help optimize your efforts.

In order to do this you will need to run your main function through the python profiling package cProfile. For example:

def main():
 pass

import cProfile
profile = cProfile.Profile()
profile.runcall(main)

Depending on your particular configuration, the previous code might lead you to run the test twice. To avoid the repetition, wrap your main function with a decorator instead:

import decorator

decorator.profile

def main():

pass
  1. in the decorator file

def profile(func):

def inner():
import cProfile
p = cProfile.Profile()
p.runcall(func)
#do something to report the result

return inner