2017-10-31 6 views
1

私はファイルを持っている行のヒット数、test_basic.pypytestカバレッジ -

class Basic(): 
    def __init__(self): 
     print ('Basic initialized') 
    def add_num(self, num1, num2): 
     counter = 0 
     while (counter < 5): 
      counter = counter + 1 
     return (num1 + num2) 
    def sub_num(self, num1, num2): 
     return (num1 - num2) 
    def prod_num(self, num1, num2): 
     return (num1 * num2) 
    def div_num(self, num1, num2): 
     if not num2: 
      return 0 
     return num1/num2 
    def lhospital(self, num1, num2): 
     if num2 == 0: 
      return 10000000 
     else: 
      return num1/num2 

カバレッジを取得するには、私は、このコマンドを実行します。私は、basic.py別のファイルいる

class TestCalculator(): 
    def test_calculator(self): 
     from basic import Basic 
     basic_obj = Basic() 
     sum_nums = basic_obj.add_num(1,2) 
     diff_num = basic_obj.sub_num(3,5) 
     prod_num = basic_obj.prod_num(5,5) 
     quo_num = basic_obj.div_num(3,0) 

py.test --cov-report xml --cov=test/lib test/lib/test_basic.py

coverage.xmlにおいて、I Hカバレッジレポートをアベニューとbasic.pyでライン6,7のための例である:basic.py

<line branch="true" condition-coverage="100% (2/2)" hits="1" number="6"/> 
<line hits="1" number="7"/> 

、ライン6,7は、複数回実行されます。 .coveragercファイルを変更する方法はありますか、それともラインのヒット数に複数の実行が反映されるような何か他の方法がありますか?

ありがとうございます!

答えて

1

Coverage.pyはヒット数をサポートしていません。おそらく将来的にはそうなるでしょう。

+0

この拡張機能を実装できるファイルを教えてください。 https://bitbucket.org/ned/coveragepy/src/9cf891202041c5cbafc19e8c2d5467db77100066/coverage/?at=default –

+0

最初にstdlibの "trace"モジュールを使用してみてください。それにはこの機能があります。 –