2017-11-21 13 views
0

私はPythonでゲームを学習していますが、ユニットテストを実行できませんでした。パッケージが間違っているようですが、わかりません。ユニットテストが実行されていません

マイフォルダ構造は以下の通りです:

folder/ 
    src/ 
     __init__.py 
     scenario.py 
     monster.py 
     ... 
    tests/ 
     __init__.py 
     testmonster.py 

私は 'フォルダ' でだが、これは私のテストクラス

import unittest 
from src.scenario import Scene 
from src.monster import Zombie 
import sys 

class TestMonster(unittest.TestCase): 

    scene = None 

    def setUp(self): 
     scene = Scene() 

    def testHit(self): 
     zombie = Zombie(self.scene, 0,0) 

     # we got 1 zombie now 
     assertEqual(len(scene.zombies), 1) 

     damage = scene.getPlayer().gun.damage 

     zombielife = zombie.hp 

     numberOfHits = zombielife/damage 
     print numberOfHits 

unittest.main() 

ある

python -m tests.testmonster.py 

次のコマンドを実行するとI私が得るファイルを実行しようとする

Ran 0 tests in 0.000s

何か不足していますか?それは道についてですか?私はVMを使用したいと思います

+1

あなたは 'self.assert'何か試しましたか? 'self.assertEqual(numberOfHits、3) ' – Eqomatic

+0

ええ=(うまくいきませんでした。 –

+0

なぜ' -m'として実行しているのですか? – user1767754

答えて

1

私はあなたの設定をシミュレートし、あなたが見ているものを繰り返すことができました。しかし、私がテストフォルダに入り、 '-m'をドロップすると、うまく動作します。また、0.000s

python testmonster.py 

蘭1つのテスト、私はassertpyをお勧めします。 github、私は標準ライブラリでアサーションよりも読みやすくなっています。

スティーブジェイ

+0

うわー、あなたが実行したときに "no module src.scenario"と表示されます。 –

+0

なぜassertpyが良いのですか? – user1767754

+0

@ user1767754;可読性、eg; "assert_that(1 + 2)。 – SteveJ

関連する問題