Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python FileNotFoundError:[Errno 2]没有这样的文件或目录:';测试用户1用户id';_Python_Django - Fatal编程技术网

Python FileNotFoundError:[Errno 2]没有这样的文件或目录:';测试用户1用户id';

Python FileNotFoundError:[Errno 2]没有这样的文件或目录:';测试用户1用户id';,python,django,Python,Django,我收到一个错误FileNotFoundError:[Errno 2]没有这样的文件或目录:“test\u user1\u user\u id”。我在tests.py上写的 from datetime import datetime from django.test import TestCase from app.models import Companytransaction import xlrd # Create your tests here. class Companytransa

我收到一个错误
FileNotFoundError:[Errno 2]没有这样的文件或目录:“test\u user1\u user\u id”
。我在tests.py上写的

from datetime import datetime

from django.test import TestCase
from app.models import Companytransaction
import xlrd

# Create your tests here.
class CompanytransactionModelTests(TestCase):
    def __init__(self, sheet_path):
        self.book = xlrd.open_workbook(sheet_path)
        self.sheet = self.book.sheet_by_index(1)

    def setUp(self):
        self.book = xlrd.open_workbook('./data/excel1.xlsx')
        self.sheet = self.book.sheet_by_index(1)
        num = 0
        for row_index in range(2,4):
            row = self.sheet.row_values(row_index)
                user = Companytransaction(user_id=row[1], name=row[2], age=row[3])
                user.save()

                if num == 0:
                    self.user1 = Companytransaction.objects.create(user_id=row[1], name=row[2], age=row[3])
                    num += 1
                elif num == 1:
                    self.user2 = Companytransaction.objects.create(user_id=row[1], name=row[2], age=row[3])
                    num += 1
                else:
                    self.user3 = Companytransaction.objects.create(user_id=row[1], name=row[2], age=row[3])

    def test_user1_company_id(self):
        self.assertEqual(self.user1.user_id, '100')

    def test_user1_corporation_id(self):
        self.assertEqual(self.user1.name, 'Tom')

    def test_user1_company_name(self):
        self.assertEqual(self.user1.age, '29')
我运行了
python manage.py test
&
/manage.py test app.tests
,但它们都显示了相同的错误。我确实在
models.py
中创建了
user\u id列
,所以我真的无法理解为什么会发生此错误。我怎样才能解决这个问题? 我应该写什么

这是回溯

Traceback (most recent call last):
  File "./manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
    utility.execute()
  File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/management/__init__.py", line 355, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/management/commands/test.py", line 29, in run_from_argv
    super(Command, self).run_from_argv(argv)
  File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/management/commands/test.py", line 62, in handle
    failures = test_runner.run_tests(test_labels)
  File "/Users/xxx/myenv/lib/python3.5/site-packages/django/test/runner.py", line 600, in run_tests
    suite = self.build_suite(test_labels, extra_tests)
  File "/Users/xxx/myenv/lib/python3.5/site-packages/django/test/runner.py", line 484, in build_suite
    tests = self.test_loader.loadTestsFromName(label)
  File "/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/loader.py", line 190, in loadTestsFromName
    return self.loadTestsFromModule(obj)
  File "/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/loader.py", line 123, in loadTestsFromModule
    tests.append(self.loadTestsFromTestCase(obj))
  File "/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/loader.py", line 92, in loadTestsFromTestCase
    loaded_suite = self.suiteClass(map(testCaseClass, testCaseNames))
  File "/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/suite.py", line 24, in __init__
    self.addTests(tests)
  File "/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/suite.py", line 57, in addTests
    for test in tests:
  File "/Users/xxx/app/app/tests.py", line 12, in __init__
    self.book = xlrd.open_workbook(sheet_path)
  File "/Users/xxx/myenv/lib/python3.5/site-packages/xlrd/__init__.py", line 116, in open_workbook
    with open(filename, "rb") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'test_user1_user_id'
回溯(最近一次呼叫最后一次):
文件“/manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/Users/xxx/myenv/lib/python3.5/site packages/django/core/management/_init__.py”,第363行,从命令行执行
utility.execute()
文件“/Users/xxx/myenv/lib/python3.5/site packages/django/core/management/_init__.py”,执行中第355行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/xxx/myenv/lib/python3.5/site packages/django/core/management/commands/test.py”,第29行,在运行时从
超级(命令,自我)。从_argv(argv)运行_
文件“/Users/xxx/myenv/lib/python3.5/site-packages/django/core/management/base.py”,第283行,运行时从
self.execute(*args,**cmd_选项)
文件“/Users/xxx/myenv/lib/python3.5/site packages/django/core/management/base.py”,第330行,在execute中
输出=self.handle(*args,**选项)
文件“/Users/xxx/myenv/lib/python3.5/site packages/django/core/management/commands/test.py”,第62行,在handle中
失败=测试运行程序。运行测试(测试标签)
文件“/Users/xxx/myenv/lib/python3.5/site packages/django/test/runner.py”,第600行,运行测试中
suite=self.build\u suite(测试标签、额外测试)
文件“/Users/xxx/myenv/lib/python3.5/site packages/django/test/runner.py”,第484行,在build_套件中
tests=self.test\u loader.loadestsFromName(标签)
loadTestsFromName中的文件“/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/loader.py”,第190行
返回self.loadTestsFromModule(obj)
loadTestsFromModule中的文件“/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/loader.py”,第123行
tests.append(self.loadTestsFromTestCase(obj))
loadTestsFromTestCase中的文件“/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/loader.py”,第92行
loaded_suite=self.suiteClass(映射(testCaseClass,testCaseNames))
文件“/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/suite.py”,第24行,在__
self.addTests(测试)
addTests中的文件“/Users/xxx/.pyenv/versions/3.5.0/lib/python3.5/unittest/suite.py”,第57行
对于测试中的测试:
文件“/Users/xxx/app/app/tests.py”,第12行,在__
self.book=xlrd.open\u工作簿(工作表路径)
文件“/Users/xxx/myenv/lib/python3.5/site packages/xlrd/_init__.py”,第116行,在open_工作簿中
打开(文件名为“rb”)作为f:
FileNotFoundError:[Errno 2]没有这样的文件或目录:“test\u user1\u user\u id”

问题似乎出在您的
\uuuu init\uuu
方法上:

def __init__(self, sheet_path):
    self.book = xlrd.open_workbook(sheet_path)
    self.sheet = self.book.sheet_by_index(1)
出现此错误是因为初始化
CompanytransactionModelTests
时没有提供
sheet\u路径。我们可以从中看到,
modelName
是初始化
TestCase
时的第一个和唯一的参数。我敢打赌,在一个具有类似
\uuu init\uu
代码的类上,有一个名为
test\u user1\u user\u id
的方法


setUp
中设置测试数据是正确的方法。如果你去掉了
\uuu init\uuuu
代码,看起来事情应该会正常运行。

你可以把整个回溯添加进去吗?这将大大有助于我们为您的问题找到解决方案。它是在抱怨缺少文件,而不是缺少数据库列。您的数据库是如何定义的?你在使用sqlite3吗?@seanfrancisin.Ballais我在我的问题中添加了回溯。如果你知道什么,请帮助我。