0

これは1からのフォローアップの質問です

ループ内の2つの特定のケースで関数をテストする必要があります。しかし、印刷された結果に基づくと、最初の反復のみがチェックされているように見えますか?これは関係がありrunner.run(unittest.makeSuite(MyTestCase))ますか?

import unittest
from StringIO import StringIO
import rice_output

class MyTestCase(unittest.TestCase):
    def setUp(self):
        #####Pre-defined inputs########
        self.dsed_in=[1,2]
        self.a_in=[2,3]
        self.pb_in=[3,4]

        #####Pre-defined outputs########
        self.msed_out=[6,24]

        #####TestCase run variables########
        self.tot_iter=len(self.a_in)

def testMsed(self):
    for i in range(self.tot_iter):
        print i
        fun = rice_output.msed(self.dsed_in[i],self.a_in[i],self.pb_in[i])
        value = self.msed_out[i]
        testFailureMessage = "Test of function name: %s iteration: %i expected: %i != calculated: %i" % ("msed",i,value,fun)
        return self.assertEqual(round(fun,3),round(self.msed_out[i],3),testFailureMessage)

from pprint import pprint
stream = StringIO()
runner = unittest.TextTestRunner(stream=stream)
result = runner.run(unittest.makeSuite(MyTestCase))
print 'Tests run ', result.testsRun
print 'Errors ', result.errors

これが彼の出力です:

0
Tests run  1
Errors  []
[]
Test output
testMsed (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

助言がありますか?ありがとう!

4

1 に答える 1

3

returnステートメントを削除します

def testMsed(self):
  for i in range(self.tot_iter):
    print i
    fun = rice_output.msed(self.dsed_in[i],self.a_in[i],self.pb_in[i])
    value = self.msed_out[i]
    testFailureMessage = "Test of function name: %s iteration: %i expected: %i != calculated: %i" % ("msed",i,value,fun)
    self.assertEqual(round(fun,3),round(self.msed_out[i],3),testFailureMessage)
于 2013-01-11T19:10:19.187 に答える