0

親愛なる皆さんは、実行時に (admincases import admincases から) Python モジュールをインポートしようとしており、その問題に直面しています。同じことについてのガイダンスを求めています。

import os
import threading
import sys
import Queue
import unittest
import time
import logging
from functions import functions
from functions import db_connect
from one import ParametrizedTestCase
#from admincases import admincases
import MySQLdb as mdb

class inittest(unittest.TestCase):

    fun = functions()
    db = db_connect()
    cur = db.db_conn()
    cur.execute ("SELECT * FROM testcase")
    testcases = cur.fetchall ()
    for testcase in testcases:
        print "%s, %s" % (testcase[0], testcase[1])
        import_string = "from " + testcase[1] + " import " + testcase[1]
        print import_string
        exec import_string
        case = str_to_class(testcase[1])
        print case
        print "Number of rows returned: %d" % cur.rowcount
    suite = unittest.TestSuite()
    suite.addTest(ParametrizedTestCase.parametrize(case, param=EppQueue,queue1=CrQueue))
    unittest.TextTestRunner(verbosity=2).run(suite)
    raw_input("keyy")

このコードが実行されると、次のエラーが表示されます。

 return getattr(sys.modules[__name__], str)
AttributeError: 'module' object has no attribute 'admincases'

何が間違いなのかわからない

よろしく Venkat.S

4

2 に答える 2

0

以下の方法を使用して達成しました:

test_mod = __import__(testcase[1], fromlist=[])
test_class =  getattr(test_mod, testcase[1])
于 2012-06-20T04:54:11.030 に答える
0

samy.vilar が示唆したように、admincasesモジュールにadmincases変数があることを確認する必要があるようです。実際、あなたのコードはそうfrom admincases import admincasesです。

私の推測では、うまくいけばfrom admincases import admincases、コードはうまくいくはずです。

于 2012-06-19T07:39:22.543 に答える