かなり一般的な質問になりたいと思っています。XML ファイルをテストし、特定のタグを検証しています。各フィールドのコードを書き直したくなかったので、タグ チェック コードを再利用しようとしています。しかし、私がそうしようとすると、
これは、UnitTest フレームワークを使用しようとしている「ValidateField」クラスです。これは、使用しようとしているコードです。私は単に次のようにそれを呼び出そうとしています。私が得たのは、単体テスト フレームワークが 0 個のテストを実行したということです。クラスを再利用しようとしていないプログラムの他の場所で、ユニットテストフレームワークをうまく使用しています。私が道に迷っている人はいますか?
これが私が得る出力です:
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
----------------------------------------------------------------------
これは、再利用可能なクラスへの呼び出しを行っているクラス/メソッドです
import Common.ValidateField
class Tests():
def test_testCreated(self):
validate = Common.ValidateField.ValidateField()
validate.test_field('./created')
単体テスト フレームワークを使用した再利用可能なクラスを次に示します。
import unittest
import Main
import Common.Logger
class ValidateField(unittest.TestCase):
def test_field(self, xpath):
driver = Main.ValidateDriver().driver
logger = Common.Logger.Logger
tag = []
for t in driver.findall("'" + xpath + "'"):
tag.append(t)
# Test to see if there is more than one tag.
if len(tag) > 1:
self.assertTrue(False, logger.failed("There is more than one " + "'" + t.text + "'" + " tag."))
else:
# Test for a missing tag.
if len(tag) <= 0:
self.assertTrue(False, logger.failed("There is no " + "'" + t.text + "'" + " tag."))
# Found the correct number of tags.
self.assertTrue(True, logger.passed("There is only one " + "'" + t.text + "'" + " tag."))
# Test to make sure there is actually something in the tag.
if t.text is None:
self.assertTrue(False, logger.failed("There is a " + "'" + t.text + "'" + " tag, but no value exists"))