Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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
TypeError:Python UnitTests:_init__()接受1到2个位置参数,但给出了3个_Python_Django_Unit Testing_Pytest_Python Unittest - Fatal编程技术网

TypeError:Python UnitTests:_init__()接受1到2个位置参数,但给出了3个

TypeError:Python UnitTests:_init__()接受1到2个位置参数,但给出了3个,python,django,unit-testing,pytest,python-unittest,Python,Django,Unit Testing,Pytest,Python Unittest,我正在使用Django创建项目的接口。我试图通过django管理员的操作方法调用这个脚本。然而,我最终还是犯了一个错误。可能的错误和解决方案是什么?我知道代码很混乱,有很多注释,我试过几种变通方法。我想做的是: 将模型实例传递给unittest方法,该方法使用实例的属性来运行其测试 管理员 from io import StringIO from django.contrib import admin from .models import UploadTrackModel from .Test

我正在使用Django创建项目的接口。我试图通过django管理员的操作方法调用这个脚本。然而,我最终还是犯了一个错误。可能的错误和解决方案是什么?我知道代码很混乱,有很多注释,我试过几种变通方法。我想做的是:

将模型实例传递给unittest方法,该方法使用实例的属性来运行其测试

管理员

from io import StringIO
from django.contrib import admin
from .models import UploadTrackModel
from .TestCases.UploadTest import Test_Upload
import unittest
import pytest

import threading
from threading import Thread
# Register your models here.


from selenium import webdriver
def run_test(self, request, queryset):
    for item in queryset:
        stream = StringIO()
        suite = unittest.TestSuite()
        suite.addTest(Test_Upload('test_upload', item))
        # runner = unittest.TextTestRunner(stream=stream)
        # result = runner.run(unittest.makeSuite(Test_Upload))
        unittest.TextTestRunner(verbosity=2).run(suite)
        # result.testsRun
        # stream.seek(0)
        # print('Test output\n', stream.read())


class UploadTrackAdmin(admin.ModelAdmin):
    actions = [run_test]

admin.site.register(UploadTrackModel,UploadTrackAdmin)
这是它试图调用的类

from ..PageObjects.Upload import Upload
from ..PageObjects.HomePage import HomePage
import unittest
from selenium import webdriver
from threading import Thread

class Test_Upload(unittest.TestCase):
    baseURL = "<sampleURLhere>"


    driver = None

    # def __int__(self, upload_object, *args, **kwargs):
    #     super(Test_Upload, self).__init__(self,*args, **kwargs)
    #     self.upload_object = upload_object



    def setUp(self):
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument("--incognito")
        self.driver = webdriver.Chrome(executable_path="exec path here", options= chrome_options)
        self.driver.get(self.baseURL)

    def test_upload(self, upload_object):
        hp = HomePage(self.driver)
        hp.sign_in()
        hp.sign_in_email(upload_object.email, upload_object.password)
        up = Upload(self.driver)
        up.click_upload(upload_object)


if __name__ == '__main__':
    unittest.main()


无法将自定义参数添加到
unittest
测试函数(例如
upload\u object
)-
unittest
无法设置此参数。
Traceback (most recent call last):
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\contrib\admin\options.py", line 614, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\contrib\admin\sites.py", line 233, in inner
    return view(request, *args, **kwargs)
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\contrib\admin\options.py", line 1719, in changelist_view
    response = self.response_action(request, queryset=cl.get_queryset(request))
  File "C:\Users\admin\PycharmProjects\Songdew\venv\lib\site-packages\django\contrib\admin\options.py", line 1402, in response_action
    response = func(self, request, queryset)
  File "C:\Users\admin\PycharmProjects\Songdew\UI\UploadUI\admin.py", line 18, in run_test
    suite.addTest(Test_Upload('test_upload', item))
TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given