{"title":"Tástálacha aonaid","version":"6.1","locale":"ga","docname":"internals/contributing/writing-code/unit-tests","url":"/ga/6.1/internals/contributing/writing-code/unit-tests/","canonical":"https://djangodocs.dev/ga/6.1/internals/contributing/writing-code/unit-tests/","summary":"Tagann Django le sraith tástála féin, in eolaire `` tástálacha `` den bhonn cód. Is é ár mbeartas a chinntiú go dtéann gach tástáil i gcónaí. Táimid buíoch as aon…","html":"<h1>Tástálacha aonaid<a class=\"heading-anchor\" href=\"#unit-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Tagann Django le sraith tástála féin, in eolaire <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>tástálacha <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>den bhonn cód. Is é ár mbeartas a chinntiú go dtéann gach tástáil i gcónaí.</p>\n<p>Táimid buíoch as aon ranníocaíochtaí go léir leis an tsraith tástála!</p>\n<p>Úsáideann tástálacha Django go léir an bonneagar tástála a sheolann le Django chun feidhmchláir a thástáil Féach:doc: /topics/tástáil/léirmheas le haghaidh míniú ar conas tástálacha nua a scríobh.</p>\n<section id=\"running-the-unit-tests\">\n<span id=\"running-unit-tests\"></span><h2>Tástálacha aonaid a rith<a class=\"heading-anchor\" href=\"#running-the-unit-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"quickstart\">\n<h3>Tosaigh gasta<a class=\"heading-anchor\" href=\"#quickstart\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>&lt; <a class=\"reference external\" href=\"https://github.com/django/django/fork\">https://github.com/django/django/fork</a>&gt;Ar dtús, <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`fork Django ar Github`__</span></a>.</p>\n<p>Ar an dara dul síos, cruthaigh agus gníomhachtaigh timpeallacht f Mura bhfuil tú eolach ar conas é sin a dhéanamh, léigh inn:doc: teagaisc rannchuidiúcháin &lt;/intro/contributing&gt;.</p>\n<p>Ansin, clóin do fhorc, suiteáil roinnt riachtanais, agus reáchtáil na tástálacha:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>git<span class=\"w\"> </span>clone<span class=\"w\"> </span>https://github.com/YourGitHubName/django.git<span class=\"w\"> </span>django-repo\n<span class=\"gp\">$ </span><span class=\"nb\">cd</span><span class=\"w\"> </span>django-repo/tests\n<span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-e<span class=\"w\"> </span>..\n<span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-r<span class=\"w\"> </span>requirements/py3.txt\n<span class=\"gp\">$ </span>./runtests.py\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> git clone https://github.com/YourGitHubName/django.git django-repo\n<span class=\"gp\">...\\&gt;</span> <span class=\"k\">cd</span> django-repo\\tests\n<span class=\"gp\">...\\&gt;</span> py -m pip install -e ..\n<span class=\"gp\">...\\&gt;</span> py -m pip install -r requirements\\py3.txt\n<span class=\"gp\">...\\&gt;</span> runtests.py \n</code></pre></div></div></div>\n<p>Is dócha go mbeidh gá le roinnt pacáistí córais oibriúcháin nach bhfuil suiteáilte ar do ríomhaire chun na ceanglais a shuiteáil. Is féidir leat a dhéanamh amach de ghnáth cén pacáiste atá le suiteáil trí chuardach gréasáin a dhéanamh don líne dheireanach nó mar sin den teachtaireacht earráide. Bain triail as do chóras oibriúcháin a chur leis an bhfiosrúchán cuardaigh más gá.</p>\n<p>If you have trouble installing an optional test dependency, you can skip that\ndependency locally. For example, if installing <code class=\"docutils literal notranslate\"><span class=\"pre\">pylibmc</span></code> fails, comment out\nits line in <code class=\"docutils literal notranslate\"><span class=\"pre\">requirements/py3.txt</span></code> and continue with <code class=\"docutils literal notranslate\"><span class=\"pre\">./runtests.py</span></code>.\nTests that require <code class=\"docutils literal notranslate\"><span class=\"pre\">pylibmc</span></code> will be skipped automatically. See\n<a class=\"reference internal\" href=\"#running-unit-tests-dependencies\"><span class=\"std std-ref\">Na tástálacha go léir á rith</span></a> for details on installing the optional\ntest dependencies.</p>\n<p>Teastaíonn modúl socruithe Django a shainmhíníonn na bunachair sonraí atá le húsáid. Chun cabhrú leat tosú, soláthraíonn agus úsáideann Django modúl socruithe samplach a úsáideann bunachar sonraí SQLite. Féach:ref: running-unit-tests-settings chun foghlaim conas modúl socruithe difriúil a úsáid chun na tástálacha a reáchtáil le bunachar sonraí difriúil.</p>\n<p>Ag fadhbanna agat? Féach:ref: trouoting-unitt-tests le haghaidh roinnt saincheisteanna coitianta.</p>\n</section>\n<section id=\"running-tests-using-tox\">\n<h3>Tástálacha reatha ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">tocs</span></code><a class=\"heading-anchor\" href=\"#running-tests-using-tox\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is uirlis é <a class=\"reference internal\" href=\"#tox\">Tox</a> chun tá&lt; <a class=\"reference external\" href=\"https://tox.wiki/\">https://tox.wiki/</a>&gt; stálacha a reáchtáil i dtimpeallachtaí fíorúla difriúla Cuimsíonn Django bunúsach <code class=\"docutils literal notranslate\"><span class=\"pre\">tox.ini</span></code> a uathoibriú roinnt seiceálacha a dhéanann ár bhfreastalaí tógála ar iarratais tarraingthe. &lt;coding-style-imports&gt;Chun na tástálacha aonaid agus na seiceálacha eile a reáchtáil (mar shampla:ref: sórtáil allmhairiúcháin `, an:ref: `seiceálaí litrithe doiciméadaithe', agus &lt;documentation-spelling-check&gt;:ref: `formáidiú cód`&lt;coding-style-python&gt;), suiteáil agus reáchtáil an t-ordú `tox` ó aon áit sa chrann foinse Django:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-1-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>tox\n<span class=\"gp\">$ </span>tox\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-1-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -m pip install tox\n<span class=\"gp\">...\\&gt;</span> tox\n</code></pre></div></div></div>\n<p>By default, <code class=\"docutils literal notranslate\"><span class=\"pre\">tox</span></code> runs the test suite with the bundled test settings file for\nSQLite, <code class=\"docutils literal notranslate\"><span class=\"pre\">black</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">blacken-docs</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">flake8</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">isort</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">lint-docs</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">zizmor</span></code>, and the documentation spelling checker. In addition to the system\ndependencies noted elsewhere in this documentation, the command <code class=\"docutils literal notranslate\"><span class=\"pre\">python3</span></code>\nmust be on your path and linked to the appropriate version of Python. A list of\ndefault environments can be seen as follows:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-2-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>tox<span class=\"w\"> </span>-l\n<span class=\"go\">py3</span>\n<span class=\"go\">black</span>\n<span class=\"go\">blacken-docs</span>\n<span class=\"go\">flake8&gt;=3.7.0</span>\n<span class=\"go\">docs</span>\n<span class=\"go\">isort&gt;=7.0.0</span>\n<span class=\"go\">lint-docs</span>\n<span class=\"go\">zizmor&gt;=1.19.0</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-2-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> tox -l\n<span class=\"go\">py3</span>\n<span class=\"go\">black</span>\n<span class=\"go\">blacken-docs</span>\n<span class=\"gp\">flake8&gt;</span>=3.7.0\n<span class=\"go\">docs</span>\n<span class=\"gp\">isort&gt;</span>=7.0.0\n<span class=\"go\">lint-docs</span>\n<span class=\"gp\">zizmor&gt;</span>=1.19.0\n</code></pre></div></div></div>\n<section id=\"testing-other-python-versions-and-database-backends\">\n<h4>Leaganacha Python eile agus cúltaca bunachar sonraí a thástáil<a class=\"heading-anchor\" href=\"#testing-other-python-versions-and-database-backends\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>In addition to the default environments, <code class=\"docutils literal notranslate\"><span class=\"pre\">tox</span></code> supports running unit tests\nfor other versions of Python and other database backends. Since Django's test\nsuite doesn't bundle a settings file for database backends other than SQLite,\nhowever, you must <a class=\"reference internal\" href=\"#running-unit-tests-settings\"><span class=\"std std-ref\">create and provide your own test settings</span></a>. For example, to run the tests on Python 3.12\nusing PostgreSQL:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-3-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>tox<span class=\"w\"> </span>-e<span class=\"w\"> </span>py312-postgres<span class=\"w\"> </span>--<span class=\"w\"> </span>--settings<span class=\"o\">=</span>my_postgres_settings\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-3-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> tox -e py312-postgres -- --settings=my_postgres_settings\n</code></pre></div></div></div>\n<p>This command sets up a Python 3.12 virtual environment, installs Django's\ntest suite dependencies (including those for PostgreSQL), and calls\n<code class=\"docutils literal notranslate\"><span class=\"pre\">runtests.py</span></code> with the supplied arguments (in this case,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">--settings=my_postgres_settings</span></code>).</p>\n<p>Taispeánann an chuid eile den doiciméadú seo orduithe chun tástálacha a reáchtáil gan tox, áfach, is féidir aon rogha a chuirtear chuig runtests.py` a chur chuig tox` tríd an liosta argóintí a réamhshocrú le <code class=\"docutils literal notranslate\"><span class=\"pre\">--</span></code>, mar atá thuas.</p>\n<p>Tá meas ag <code class=\"docutils literal notranslate\"><span class=\"pre\">Tox</span></code> freisin ar an athróg comhshaoil: envvar: DJANGO_SETTINGS_MODULE, má tá sé socraithe. Mar shampla, tá an méid seo a leanas comhionann leis an ordú thuas:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span><span class=\"nv\">DJANGO_SETTINGS_MODULE</span><span class=\"o\">=</span>my_postgres_settings<span class=\"w\"> </span>tox<span class=\"w\"> </span>-e<span class=\"w\"> </span>py312-postgres\n</code></pre></div>\n<p>Ba chóir d'úsáideoirí Windows a úsáid:</p>\n<div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows code\"><code><span class=\"gp\">...\\&gt;</span> <span class=\"k\">set</span> <span class=\"nv\">DJANGO_SETTINGS_MODULE</span><span class=\"p\">=</span>my_postgres_settings\n<span class=\"gp\">...\\&gt;</span> tox -e py312-postgres\n</code></pre></div>\n</section>\n<section id=\"running-the-javascript-tests\">\n<h4>Na tástálacha JavaScript a rith<a class=\"heading-anchor\" href=\"#running-the-javascript-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Cuimsíonn Django sraith de:ref: Tástálacha aonad JavaScript &lt;javascript-tests&gt;`le haghaidh feidhmeanna in aipeanna contrib áirithe. Ní reáchtáiltear na tástálacha JavaScript de réir réamhshocraithe ag baint úsáide as `tox` toisc go n-éilíonn siad <code class=\"docutils literal notranslate\"><span class=\"pre\">Node.js</span> <span class=\"pre\">``a</span> <span class=\"pre\">shuiteáil</span> <span class=\"pre\">agus</span> <span class=\"pre\">nach</span> <span class=\"pre\">bhfuil</span> <span class=\"pre\">gá</span> <span class=\"pre\">le</span> <span class=\"pre\">haghaidh</span> <span class=\"pre\">formhór</span> <span class=\"pre\">na</span> <span class=\"pre\">bpaistí.</span> <span class=\"pre\">Chun</span> <span class=\"pre\">na</span> <span class=\"pre\">tástálacha</span> <span class=\"pre\">JavaScript</span> <span class=\"pre\">a</span> <span class=\"pre\">reáchtáil</span> <span class=\"pre\">ag</span> <span class=\"pre\">baint</span> <span class=\"pre\">úsáide</span> <span class=\"pre\">as</span> <span class=\"pre\">``tox</span></code>:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-4-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>tox<span class=\"w\"> </span>-e<span class=\"w\"> </span>javascript\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-4-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> tox -e javascript\n</code></pre></div></div></div>\n<p>Ritheann an t-ordú seo <code class=\"docutils literal notranslate\"><span class=\"pre\">npm</span> <span class=\"pre\">install</span> <span class=\"pre\">``chun</span> <span class=\"pre\">a</span> <span class=\"pre\">chinntiú</span> <span class=\"pre\">go</span> <span class=\"pre\">bhfuil</span> <span class=\"pre\">riachtanais</span> <span class=\"pre\">tástála</span> <span class=\"pre\">cothrom</span> <span class=\"pre\">le</span> <span class=\"pre\">dáta</span> <span class=\"pre\">agus</span> <span class=\"pre\">ansin</span> <span class=\"pre\">ritheann</span> <span class=\"pre\">sé</span> <span class=\"pre\">``npm</span> <span class=\"pre\">tástáil</span></code>.</p>\n</section>\n</section>\n<section id=\"running-tests-using-django-docker-box\">\n<span id=\"running-tests-docker-box\"></span><h3>Tástálacha a reáchtáil ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">django-docker-box</span></code><a class=\"heading-anchor\" href=\"#running-tests-using-django-docker-box\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ligeann <a class=\"reference external\" href=\"https://github.com/django/django-docker-box/\">django-docker-box `_ duit sraith tástála Django a reáchtáil ar fud na bunachair sonraí go léir agus leaganacha python tacaithe. Féach leathanach tionscadail `django-docker-box</a> le haghaidh treoracha suiteála agus úsáide.</p>\n</section>\n<section id=\"using-another-settings-module\">\n<span id=\"running-unit-tests-settings\"></span><h3>Ag baint úsáide as modúl eile <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>socruithe ``<a class=\"heading-anchor\" href=\"#using-another-settings-module\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ligeann an modúl socruithe san áireamh (<code class=\"docutils literal notranslate\"><span class=\"pre\">tests/test_sqlite.py</span></code>) duit an tsraith tástála a reáchtáil ag baint úsáide as SQLite. Más mian leat na tástálacha a reáchtáil ag baint úsáide as bunachar sonraí difriúil, beidh ort do chomhad socruithe féin a shainiú. Tá roinnt tástálacha, mar shampla iad siúd do contrib.postgres`, go sonrach le cúltaca bunachar sonraí áirithe agus scipeánfar iad má reáchtáiltear le cúltaca difriúil. Scaiptear roinnt tástálacha nó ag súil le teipeanna ar chúlcheann bunachar sonraí áirithe (féach <code class=\"docutils literal notranslate\"><span class=\"pre\">DatabaseFeatures.django_test_skips</span></code> agus`` databaseFeatures.django_test_expected_failures`` ar gach cúltaca).</p>\n<p>Chun na tástálacha a reáchtáil le socruithe éagsúla, cinntigh go bhfuil an modúl ar do: envvar: PYTHONPATH agus pas an modúl le <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>--socruithe <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p>\n<p>Ní mór don socrú: SETTING: DATABASES in aon mhodúl socruithe tástála dhá bhunachar sonraí a shainiú:</p>\n<ul class=\"simple\">\n<li><p>Bunachar sonraí <code class=\"docutils literal notranslate\"><span class=\"pre\">réamhshocraithe</span></code>. Ba chóir go n-úsáideodh an bunachar sonraí seo an cúltaca is mian leat a úsáid le haghaidh tástála bunscoile.</p></li>\n<li><p>Bunachar sonraí leis an ainm <code class=\"docutils literal notranslate\"><span class=\"pre\">eile</span> <span class=\"pre\">``.</span> <span class=\"pre\">Úsáidtear</span> <span class=\"pre\">an</span> <span class=\"pre\">bunachar</span> <span class=\"pre\">sonraí</span> <span class=\"pre\">``eile</span> <span class=\"pre\">``chun</span> <span class=\"pre\">a</span> <span class=\"pre\">thástáil</span> <span class=\"pre\">gur</span> <span class=\"pre\">féidir</span> <span class=\"pre\">ceisteanna</span> <span class=\"pre\">a</span> <span class=\"pre\">threorú</span> <span class=\"pre\">chuig</span> <span class=\"pre\">bunachair</span> <span class=\"pre\">sonraí</span> <span class=\"pre\">éagsúla.</span> <span class=\"pre\">Ba</span> <span class=\"pre\">chóir</span> <span class=\"pre\">go</span> <span class=\"pre\">n-úsáidfeadh</span> <span class=\"pre\">an</span> <span class=\"pre\">bunachar</span> <span class=\"pre\">sonraí</span> <span class=\"pre\">seo</span> <span class=\"pre\">an</span> <span class=\"pre\">cúltaca</span> <span class=\"pre\">céanna</span> <span class=\"pre\">leis</span> <span class=\"pre\">an</span> <span class=\"pre\">``default</span></code>, agus caithfidh ainm difriúil a bheith aige.</p></li>\n</ul>\n<p>Má tá cúltaca á úsáid agat nach SQLite, beidh ort sonraí eile a sholáthar do gach bunachar sonraí:</p>\n<ul class=\"simple\">\n<li><p>Caithfidh an rogha <a class=\"reference internal\" href=\"/ga/6.1/ref/settings/#std-setting-USER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USER</span></code></a> cuntas úsáideora atá ann cheana a shonrú don bhunachar sonraí. Teastaíonn cead ón úsáideoir sin <code class=\"docutils literal notranslate\"><span class=\"pre\">CREATE</span> <span class=\"pre\">DATABASE</span></code> a rith ionas gur féidir an bunachar sonraí tástála a chruthú.</p></li>\n<li><p>Ní mór don rogha: SETTING: PASSWORD an pasfhocal a sholáthar don: socrú: USER atá sonraithe.</p></li>\n</ul>\n<p>Faigheann bunachair shonraí tástála a n-ainmneacha trí <code class=\"docutils literal notranslate\"><span class=\"pre\">tástáil_</span></code> a réamh-mheas ar luach na socruithe <a class=\"reference internal\" href=\"/ga/6.1/ref/settings/#std-setting-NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NAME</span></code></a> do na bunachair shonraí atá sainmhínithe i <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">:suíomh:`BUNACHTAÍ SONRAÍ`</span></a>. Scriostar na bunachair shonraí tástála seo nuair a bhíonn na tástálacha críochnaithe.</p>\n<p>Beidh ort a chinntiú freisin go n-úsáideann do bhunachar sonraí UTF-8 mar an tacar carachtair réamhshocraithe. Mura n-úsáideann do fhreastala &lt;TEST_CHARSET&gt;í bunachar sonraí UTF-8 mar chartacar réamhshocraithe, beidh ort luach fao:setting: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>CHARSET <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a chur san áireamh sa fhoclóir socruithe tástála don bhunachar sonraí is infheidhme.</p>\n</section>\n<section id=\"running-only-some-of-the-tests\">\n<span id=\"runtests-specifying-labels\"></span><h3>Níl ach cuid de na tástálacha á rith<a class=\"heading-anchor\" href=\"#running-only-some-of-the-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tógann sé tamall le sraith tástála iomlán Django a rith, agus d'fhéadfadh sé a bheith iomarcach gach tástáil amháin a reáchtáil má chuir tú, abair, díreach tástáil le Django gur mhaith leat a rith go tapa gan gach rud eile a rith. Is féidir leat fo-thacar de na tástálacha aonaid a reáchtáil trí ainmneacha na modúil tástála a chur leis <code class=\"docutils literal notranslate\"><span class=\"pre\">runtests.py</span></code> ar an líne ordaithe.</p>\n<p>Mar shampla, más mian leat tástálacha a reáchtáil ach le haghaidh caidreamh cineálach agus idirnáisiúnú, clóscríobh:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-5-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--settings<span class=\"o\">=</span>path.to.settings<span class=\"w\"> </span>generic_relations<span class=\"w\"> </span>i18n\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-5-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --settings=path.to.settings generic_relations i18n\n</code></pre></div></div></div>\n<p>Conas a aimsíonn tú ainmneacha na dtástálacha aonair? Féach in <code class=\"docutils literal notranslate\"><span class=\"pre\">tástálacha/</span></code> - gach ainm eolaire tá ainm tástála ann.</p>\n<p>Más mian leat ach aicme áirithe tástálacha a reáchtáil, is féidir leat liosta cosáin a shonrú chuig ranganna tástála aonair. Mar shampla, chun an TranslationTests` den mhodúl <code class=\"docutils literal notranslate\"><span class=\"pre\">i18n</span></code> a reáchtáil, cineál:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-6-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--settings<span class=\"o\">=</span>path.to.settings<span class=\"w\"> </span>i18n.tests.TranslationTests\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-6-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --settings=path.to.settings i18n.tests.TranslationTests\n</code></pre></div></div></div>\n<p>Ag dul níos faide ná sin, is féidir leat modh tástála aonair mar seo a shonrú:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-7-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--settings<span class=\"o\">=</span>path.to.settings<span class=\"w\"> </span>i18n.tests.TranslationTests.test_lazy_objects\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-7-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --settings=path.to.settings i18n.tests.TranslationTests.test_lazy_objects\n</code></pre></div></div></div>\n<p>Is féidir leat tástálacha a reáchtáil ag tosú ag modúl barrleibhéil sonraithe le rogha <code class=\"docutils literal notranslate\"><span class=\"pre\">--start-at</span></code>. Mar shampla:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-8-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--start-at<span class=\"o\">=</span>wsgi\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-8-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --start-at=wsgi\n</code></pre></div></div></div>\n<p>Is féidir leat tástálacha a reáchtáil freisin ag tosú tar éis modúl barrleibhéil sonraithe le rogha <code class=\"docutils literal notranslate\"><span class=\"pre\">-</span> <span class=\"pre\">start-after</span></code>. Mar shampla:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-9-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--start-after<span class=\"o\">=</span>wsgi\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-9-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --start-after=wsgi\n</code></pre></div></div></div>\n<p>Tabhair faoi deara nach mbíonn tionchar ag an rogha <code class=\"docutils literal notranslate\"><span class=\"pre\">--reverse</span></code> ar roghanna <code class=\"docutils literal notranslate\"><span class=\"pre\">--start-at</span></code> nó <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>--tús tar éis <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Thairis sin ní féidir na roghanna seo a úsáid le lipéid tástála.</p>\n</section>\n<section id=\"running-the-selenium-tests\">\n<span id=\"running-selenium-tests\"></span><h3>Rith na tástálacha Seiléiniam<a class=\"heading-anchor\" href=\"#running-the-selenium-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Éilíonn roinnt tástálacha Seiléiniam agus brabhsálaí gréasáin &lt;BROWSERS&gt;Chun na tástálacha seo a reáchtáil, ní mór duit an pacáiste: pypi: selenium a shuiteáil agus na tástálacha a reáchtáil leis an rogha <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>--selenium= <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Mar shampla, má tá Firefox agus Google Chrome suiteáilte agat:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-10-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--selenium<span class=\"o\">=</span>firefox,chrome\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-10-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --selenium=firefox,chrome\n</code></pre></div></div></div>\n<p>Féach an pacáiste <a class=\"reference external\" href=\"https://github.com/SeleniumHQ/selenium/tree/trunk/py/selenium/webdriver\">selenium.webdriver</a> le haghaidh liosta na mbrabhsálaithe atá ar fáil.</p>\n<p>Sonraíonn <code class=\"docutils literal notranslate\"><span class=\"pre\">--selenium</span></code> go huathoibríoch <code class=\"docutils literal notranslate\"><span class=\"pre\">--tags=selenium</span></code> chun na tástálacha a theastaíonn seiléiniam a reáchtáil.</p>\n<p>Tacaíonn roinnt brabhsálaithe (m.sh. Chrome nó Firefox) le tástáil gan cheann, rud a d'fhéadfadh a bheith níos gasta agus níos cobhsaí. Cuir an rogha <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>--headless` leis chun an modh seo a chumasú.</p>\n<section id=\"screenshot-tests\">\n<span id=\"id1\"></span><h4>Screenshot tests<a class=\"heading-anchor\" href=\"#screenshot-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Chun athruithe ar an gChomhéadan riaracháin a thástáil, is féidir na tástálacha seiléiniam a reáchtáil leis an rogha <code class=\"docutils literal notranslate\"><span class=\"pre\">--screenshots`</span> <span class=\"pre\">cumasaithe.</span> <span class=\"pre\">Sábhálfar</span> <span class=\"pre\">scáileáin</span> <span class=\"pre\">scáileáin</span> <span class=\"pre\">chuig</span> <span class=\"pre\">an</span> <span class=\"pre\">eolaire</span> <span class=\"pre\">``tástálacha/scanshots/</span></code>.</p>\n<p>Chun a shainmhíniú cathain ba chóir scáileáin a ghlacadh le linn tástála seiléiniam, ní mór don rang tástála an maisitheoir <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;django</span> <span class=\"pre\">.test.selenium.screenshot_cases</span></code> a úsáid le liosta de chineálacha scáileáin tacaithe (<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;desktop_size&quot;</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">``dark&quot;`,</span> <span class=\"pre\">agus</span> <span class=\"pre\">``&quot;high_contrast</span> <span class=\"pre\">“</span></code>). Ansin is féidir leis glaoch ar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>self.take_screenshot (“unice-screenshot-name”) <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ag an bpointe atá ag teastáil chun na scannáin a ghiniúint. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.test.selenium</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">SeleniumTestCase</span><span class=\"p\">,</span> <span class=\"n\">screenshot_cases</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">SeleniumTests</span><span class=\"p\">(</span><span class=\"n\">SeleniumTestCase</span><span class=\"p\">):</span>\n    <span class=\"nd\">@screenshot_cases</span><span class=\"p\">([</span><span class=\"s2\">&quot;desktop_size&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;mobile_size&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;rtl&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;dark&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;high_contrast&quot;</span><span class=\"p\">])</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">test_login_button_centered</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">selenium</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">live_server_url</span> <span class=\"o\">+</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s2\">&quot;admin:login&quot;</span><span class=\"p\">))</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">take_screenshot</span><span class=\"p\">(</span><span class=\"s2\">&quot;login&quot;</span><span class=\"p\">)</span>\n        <span class=\"o\">...</span>\n</code></pre></div>\n<p>Gineann sé seo scáileáin iolracha den leathanach logála isteach - ceann do scáileán deisce, ceann do scáileán soghluaiste, ceann do theangacha ar dheis go clé ar dheasc, ceann don mhodh dorcha ar dheasc, agus ceann do mhodh ardchodarsnachta ar dheasc agus chrome á úsáid agat.</p>\n</section>\n</section>\n<section id=\"running-all-the-tests\">\n<span id=\"running-unit-tests-dependencies\"></span><h3>Na tástálacha go léir á rith<a class=\"heading-anchor\" href=\"#running-all-the-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Más mian leat an tsraith iomlán tástálacha a reáchtáil, beidh ort roinnt spleáchais a shuiteáil:</p>\n<ul class=\"simple\">\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/aiosmtpd/\">aiosmtpd</a> 1.4.5+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/argon2-cffi/\">argon2-cffi</a> 23.1.0+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/asgiref/\">asgiref</a> 3.9.1+ (required)</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/bcrypt/\">bcrypt</a> 4.1.1+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/colorama/\">colorama</a> 0.4.6+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/docutils/\">docutils</a> 0.22+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/geoip2/\">geoip2</a> 4.8.0+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/Jinja2/\">Jinja2</a> 2.11+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/numpy/\">numpy</a> 1.26.0+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/Pillow/\">Pillow</a> 10.1.0+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/PyYAML/\">PyYAML</a> 6.0.2+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/pywatchman/\">pywatchman</a></p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/redis/\">redis</a> 5.1.0+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/pymemcache/\">pymemcache</a>, plus a <a class=\"reference external\" href=\"https://memcached.org/\">supported Python binding</a></p></li>\n<li><p><a class=\"reference internal\" href=\"#gettext\">gettext</a> &lt; <a class=\"reference external\" href=\"https://www.gnu.org/software/gettext/manual/gettext.html\">https://www.gnu.org/software/gettext/manual/gettext.html</a>&gt; (:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>gettext_on_windows')</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/selenium/\">selenium</a> 4.23.0+</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/sqlparse/\">sqlparse</a> 0.5.0+ (required)</p></li>\n<li><p><a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/tblib/\">tblib</a> 3.0.0+</p></li>\n</ul>\n<p>Is féidir leat na spleáchais seo a fháil i gcomhaid <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`riachtanais píopa`_</span></a> taobh istigh den eolaire <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>tástálach&lt; <a class=\"reference external\" href=\"https://pip.pypa.io/en/latest/user_guide/#requirements-files\">https://pip.pypa.io/en/latest/user_guide/#requirements-files</a>&gt; a/riachtanais <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>de chrann foinse Django agus iad a shuiteáil mar sin:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-11-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-r<span class=\"w\"> </span>tests/requirements/py3.txt\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-11-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -m pip install -r tests\\requirements\\py3.txt\n</code></pre></div></div></div>\n<p>Má thagann tú ar earráid le linn na suiteála, d'fhéadfadh spleáchas a bheith in easnamh ar do chóras le haghaidh ceann amháin nó níos mó de na pacáistí Python. Téigh i gcomhairle le doiciméadú an phacáiste a bhfuil ag teip air nó cuardaigh an gréasán leis an teachtaireacht earráide a thagann ort.</p>\n<p>Is féidir leat na cuibheoirí bunachar sonraí de do rogha a shuiteáil freisin ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">oracle.txt</span></code>, mysql.txt`, nó <code class=\"docutils literal notranslate\"><span class=\"pre\">postgres.txt</span></code>.</p>\n<p>Más mian leat na cúltaca taisce memcached nó Redis a thástáil, beidh ort: socrú: CACHES a shainiú freisin a: socrú: CACHES a thugann pointe ar do shampla memcached nó Redis faoi seach.</p>\n<p>Chun na tástálacha GeoDjango a reáchtáil, beidh ort: doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>bunachar sonraí spásúil a chur ar bun agus na leabharlanna Geospásúla a shuiteáil'&lt;/ref/contrib/gis/install/index&gt;.</p>\n<p>Tá gach ceann de na spleáchais seo roghnach. Má tá aon cheann acu in easnamh agat, scipeánfar na tástálacha gaolmhara.</p>\n<p>Chun cuid de na tástálacha autoreload a reáchtáil, beidh ort an tseirbhís <a class=\"reference internal\" href=\"#watchman\">Watchman</a> a shuiteáil &lt; <a class=\"reference external\" href=\"https://facebook.github.io/watchman/\">https://facebook.github.io/watchman/</a>&gt;.</p>\n</section>\n<section id=\"code-coverage\">\n<h3>Clúdach cód<a class=\"heading-anchor\" href=\"#code-coverage\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Spreagtar ranníocóirí clúdach a reáchtáil ar an tsraith tástála chun réimsí a aithint a bhfuil tástálacha breise &lt;topics-testing-code-coverage&gt;Déantar cur síos ar shuiteáil agus úsáid na huirlisí clúdaigh in:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>clúdach cód tástála <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>Chun clúdach a rith ar an tsraith tástála Django ag baint úsáide as na socruithe tástála caighdeánacha:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-12-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>coverage<span class=\"w\"> </span>run<span class=\"w\"> </span>./runtests.py<span class=\"w\"> </span>--settings<span class=\"o\">=</span>test_sqlite\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-12-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> coverage run runtests.py --settings=test_sqlite\n</code></pre></div></div></div>\n<p>Tar éis clúdach a rith, cuir na staitisticí clúdaigh go léir le chéile trí:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-13-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>coverage<span class=\"w\"> </span>combine\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-13-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> coverage combine\n</code></pre></div></div></div>\n<p>Ina dhiaidh sin gineann an tuarascáil html trí rith:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-14-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>coverage<span class=\"w\"> </span>html\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-14-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> coverage html\n</code></pre></div></div></div>\n<p>Agus clúdach á reáchtáil do na tástálacha Django, sainmhíníonn an comhad socruithe <code class=\"docutils literal notranslate\"><span class=\"pre\">.coveragerc</span></code> san áireamh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>coverage_html <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>mar eolaire aschuir don tuarascáil agus ní chuimsíonn sé roinnt eolairí nach bhfuil ábhartha leis na torthaí (cód tástála nó cód seachtrach atá san áireamh i Django).</p>\n</section>\n<section id=\"code-coverage-on-pull-requests\">\n<span id=\"id2\"></span><h3>Code coverage on pull requests<a class=\"heading-anchor\" href=\"#code-coverage-on-pull-requests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Django's continuous integration (CI) system automatically runs code coverage\nanalysis on pull requests and posts a comment with a diff coverage report. This\nhelps reviewers see which lines in the changed code are covered by tests.</p>\n<p><strong>What the coverage report shows:</strong></p>\n<p>The coverage report posted on pull requests uses <a class=\"reference external\" href=\"https://github.com/Bachmann1234/diff_cover\">diff-cover</a> to analyze only\nthe lines that were changed or added in the PR. It shows:</p>\n<ul class=\"simple\">\n<li><p>Lines that are covered by tests (✓)</p></li>\n<li><p>Lines that are not covered by tests (✗)</p></li>\n<li><p>Lines that cannot be covered (e.g., comments, blank lines)</p></li>\n</ul>\n<p><strong>Important limitations:</strong></p>\n<p>When reviewing coverage reports on pull requests, keep these limitations in\nmind:</p>\n<ul class=\"simple\">\n<li><p><strong>Database-specific code:</strong> The CI coverage job runs tests using PostgreSQL\non Ubuntu. Code paths specific to other databases (SQLite, MySQL, Oracle)\nwill appear as &quot;not covered&quot; even if database-specific tests exist. This is\nexpected and acceptable.</p></li>\n<li><p><strong>Platform-specific code:</strong> Similarly, code that only runs on certain\noperating systems (Windows, macOS) will appear as not covered when run on\nUbuntu.</p></li>\n<li><p><strong>Coverage doesn't equal quality:</strong> A line being &quot;covered&quot; only means it was\nexecuted during tests. It doesn't guarantee the line is well-tested or that\nall edge cases are handled. During review, assess test quality beyond just\ncoverage numbers.</p></li>\n</ul>\n<p>Missing coverage should be considered a warning rather than a blocker and\nshould be evaluated in context.</p>\n</section>\n</section>\n<section id=\"contrib-apps\">\n<span id=\"id3\"></span><h2>Aipeanna Contrib<a class=\"heading-anchor\" href=\"#contrib-apps\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>&lt;app_name&gt;Is féidir tástálacha le haghaidh aipeanna contrib a fháil san eolair:source: tests/, de ghnáth faoi <code class=\"docutils literal notranslate\"><span class=\"pre\">_tástálacha</span></code>. Mar shampla, tá tástálacha le haghaidh contrib.auth` lonnaithe in:source: tests/auth_tests.</p>\n</section>\n<section id=\"troubleshooting\">\n<span id=\"troubleshooting-unit-tests\"></span><h2>Fabhtcheartú<a class=\"heading-anchor\" href=\"#troubleshooting\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"test-suite-hangs-or-shows-failures-on-main-branch\">\n<h3>Crochtann nó taispeánann an tsraith tástála teipeanna ar bhrainse <code class=\"docutils literal notranslate\"><span class=\"pre\">príomh</span></code><a class=\"heading-anchor\" href=\"#test-suite-hangs-or-shows-failures-on-main-branch\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cinntigh go bhfuil an scaoileadh pointe is déanaí agat de <a class=\"reference internal\" href=\"/ga/6.1/faq/install/#faq-python-version-support\"><span class=\"std std-ref\">leagan Python arna thacú</span></a>, mar is minic a bhíonn fabhtanna i leaganacha níos luaithe a d'fhéadfadh teip nó crochadh a dhéanamh ar an tsraith tástála.</p>\n<p>Ar <strong>macOS</strong> (High Sierra agus leaganacha níos nuaí), b'fhéidir go bhfeicfidh tú an teachtaireacht seo logáilte, agus ina dhiaidh sin crochann na tástálacha:</p>\n<div class=\"code-block\" data-language=\"pytb\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Pytb</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Pytb code\"><code><span class=\"x\">objc[42074]: +[__NSPlaceholderDate initialize] may have been in progress in</span>\n<span class=\"x\">another thread when fork() was called.</span>\n</code></pre></div>\n<p>Chun é seo a sheachaint socraigh athróg comhshaoil <code class=\"docutils literal notranslate\"><span class=\"pre\">OBJC_DISABLE_INITIALIZE_FORK_SAFETY</span></code>, mar shampla:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$<span class=\"w\"> </span><span class=\"nv\">OBJC_DISABLE_INITIALIZE_FORK_SAFETY</span><span class=\"o\">=</span>YES<span class=\"w\"> </span>./runtests.py\n</code></pre></div>\n<p>Nó cuir <code class=\"docutils literal notranslate\"><span class=\"pre\">export</span> <span class=\"pre\">OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES</span></code> le comhad tosaithe do bhlaosc (m.sh. <code class=\"docutils literal notranslate\"><span class=\"pre\">~/.profile</span></code>).</p>\n</section>\n<section id=\"many-test-failures-with-unicodeencodeerror\">\n<h3>Go leor teipeanna tástála le <code class=\"docutils literal notranslate\"><span class=\"pre\">UnicodeEncodeError</span></code><a class=\"heading-anchor\" href=\"#many-test-failures-with-unicodeencodeerror\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Mura bhfuil an pacáiste <code class=\"docutils literal notranslate\"><span class=\"pre\">locales</span></code> suiteáilte, teipeann ar roinnt tástálacha le <code class=\"docutils literal notranslate\"><span class=\"pre\">UnicodeEncodeError</span></code>.</p>\n<p>Is féidir leat é seo a réiteach ar chórais atá bunaithe ar Debian, mar shampla, trí rith:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>apt-get<span class=\"w\"> </span>install<span class=\"w\"> </span>locales\n<span class=\"gp\">$ </span>dpkg-reconfigure<span class=\"w\"> </span>locales\n</code></pre></div>\n<p>Is féidir leat é seo a réiteach do chórais macOS trí logáil do bhlaosc a chumrú:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span><span class=\"nb\">export</span><span class=\"w\"> </span><span class=\"nv\">LANG</span><span class=\"o\">=</span><span class=\"s2\">&quot;en_US.UTF-8&quot;</span>\n<span class=\"gp\">$ </span><span class=\"nb\">export</span><span class=\"w\"> </span><span class=\"nv\">LC_ALL</span><span class=\"o\">=</span><span class=\"s2\">&quot;en_US.UTF-8&quot;</span>\n</code></pre></div>\n<p>Rith an t-ordú <code class=\"docutils literal notranslate\"><span class=\"pre\">locale</span></code> chun an t-athrú a dhearbhú. Go roghnach, cuir na horduithe easpórtála sin le comhad tosaithe do bhlaosc (m.sh. ~/.bashrc` do Bash) chun seachaint a chur orthu a athchlóscríobh.</p>\n</section>\n<section id=\"tests-that-only-fail-in-combination\">\n<h3>Tástálacha nach dteipeann ach i gcomhcheangal<a class=\"heading-anchor\" href=\"#tests-that-only-fail-in-combination\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>I gcás go n-éiríonn le tástáil nuair a reáchtáiltear é ina haonar ach go dteipeann uirthi laistigh den tsraith iomlán, tá roinnt uirlisí againn chun cabhrú leis an bhfadhb a anailísiú.</p>\n<p>Reáchtálfaidh an rogha <code class=\"docutils literal notranslate\"><span class=\"pre\">--bisect</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">runtests.py</span></code> an tástáil a theip agus an tacar tástála a reáchtáiltear leis a leath ar gach athrú, rud a fhágann gur féidir líon beag tástálacha a d'fhéadfadh a bheith bainteach leis an teip a aithint go minic.</p>\n<p>Mar shampla, cuir i gceist gurb é ModelTest.test_eq` an tástáil teip a oibríonn leis féin, ansin ag baint úsáide as:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-15-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--bisect<span class=\"w\"> </span>basic.tests.ModelTest.test_eq\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-15-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --bisect basic.tests.ModelTest.test_eq\n</code></pre></div></div></div>\n<p>déanfaidh sé iarracht tástáil a chuireann isteach ar an gceann a thugtar a chinneadh. Ar dtús, reáchtáiltear an tástáil leis an gcéad leath den tsraith tástála. Má tharlaíonn teip, roinntear an chéad leath den tsraith tástála ina dhá ghrúpa agus reáchtáiltear gach grúpa ansin leis an triail shonraithe. Mura dteipeann ar an gcéad leath den tsraith tástála, reáchtáiltear an dara leath den tsraith tástála leis an tástáil shonraithe agus roinntear go cuí mar a thuairiscítear níos luaithe. Athdhéantar an próiseas go dtí go n-íoslaghdaítear an tsraith tástálacha a dteipeann orthu.</p>\n<p>Ritheann an rogha <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>--péire <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>an tástáil ar leith in éineacht le gach tástáil eile ón tsraith, ag ligean duit seiceáil an bhfuil fo-iarsmaí ag tástáil eile a chúis leis an teip. Mar sin:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-16-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--pair<span class=\"w\"> </span>basic.tests.ModelTest.test_eq\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-16-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --pair basic.tests.ModelTest.test_eq\n</code></pre></div></div></div>\n<p>péireoidh “test_eq” le gach lipéad tástála.</p>\n<p>&lt;runtests-specifying-labels&gt;Le <code class=\"docutils literal notranslate\"><span class=\"pre\">--bisect</span></code> agus <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>--pair <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>araon, má tá amhras ort cheana féin cé na cásanna a d'fhéadfadh a bheith freagrach as an teip, féadfaidh tú teorainn a chur ar thástálacha le tras-anailís trés:ref: <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>lipéid tástála breise a shonrú <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>tar éis an chéad cheann:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-17-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>--pair<span class=\"w\"> </span>basic.tests.ModelTest.test_eq<span class=\"w\"> </span>queries<span class=\"w\"> </span>transactions\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-17-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py --pair basic.tests.ModelTest.test_eq queries transactions\n</code></pre></div></div></div>\n<p>Is féidir leat triail a bhaint as aon sraith tástálacha a rith in ord randamach nó droim ar ais ag baint úsáide as na roghanna <code class=\"docutils literal notranslate\"><span class=\"pre\">--shuffle</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">--reverse</span></code>. Is féidir leis seo cabhrú lena fhíorú nach gcruthaítear trioblóid ar bith má dhéantar tástálacha in ord difriúil:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-18-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>basic<span class=\"w\"> </span>--shuffle\n<span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>basic<span class=\"w\"> </span>--reverse\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-18-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py basic --shuffle\n<span class=\"gp\">...\\&gt;</span> runtests.py basic --reverse\n</code></pre></div></div></div>\n</section>\n<section id=\"seeing-the-sql-queries-run-during-a-test\">\n<h3>Ag féachaint ar na ceisteanna SQL ag rith le linn tástála<a class=\"heading-anchor\" href=\"#seeing-the-sql-queries-run-during-a-test\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Más mian leat scrúdú a dhéanamh ar an SQL atá á reáchtáil i dtástálacha teip, is féidir leat: ref: Logáil SQL `a chasadh air ag baint úsáide as an rogha `--debu &lt;django-db-logger&gt;g-sql``. Má chomhcheanglaíonn tú é seo le <code class=\"docutils literal notranslate\"><span class=\"pre\">--verbosity=2</span></code>, aschur gach ceist SQL:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-19-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>basic<span class=\"w\"> </span>--debug-sql\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-19-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py basic --debug-sql\n</code></pre></div></div></div>\n</section>\n<section id=\"seeing-the-full-traceback-of-a-test-failure\">\n<h3>Aisrianú iomlán teip tástála a fheiceáil<a class=\"heading-anchor\" href=\"#seeing-the-full-traceback-of-a-test-failure\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>De réir réamhshocraithe déantar tástálacha a reáchtáil go comhthreomhar le próiseas amháin Nuair a reáchtar na tástálacha go comhthreomhar, áfach, ní fheicfidh tú ach rianú gearrtha le haghaidh aon teipeanna tástála. Is féidir leat an t-iompar seo a choigeartú leis an rogha <code class=\"docutils literal notranslate\"><span class=\"pre\">--parallel</span></code>:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-20-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./runtests.py<span class=\"w\"> </span>basic<span class=\"w\"> </span>--parallel<span class=\"o\">=</span><span class=\"m\">1</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-20-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> runtests.py basic --parallel=1\n</code></pre></div></div></div>\n<p>Is féidir leat an athróg comhshaoil: envvar: DJANGO_TEST_PROCESSES a úsáid freisin chun na críche seo.</p>\n</section>\n</section>\n<section id=\"tips-for-writing-tests\">\n<h2>Leideanna maidir le tástálacha scrí<a class=\"heading-anchor\" href=\"#tips-for-writing-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"isolating-model-registration\">\n<h3>Clárú samhail a leithliú<a class=\"heading-anchor\" href=\"#isolating-model-registration\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Chun truailliú a sheachaint ar an gclárlann domhanda: attr: ~django.apps.apps agus cruthú tábla gan ghá a chosc, ba cheart samhlacha a shainmhínítear i modh tástála a bheith ceangailte le sampla sealadach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Apps`. Chun seo a dhéanamh, bain úsáid as an maisitheoir:: func: ~django.test.utils.isolate_apps:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.test</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">SimpleTestCase</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.test.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">isolate_apps</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">TestModelDefinition</span><span class=\"p\">(</span><span class=\"n\">SimpleTestCase</span><span class=\"p\">):</span>\n    <span class=\"nd\">@isolate_apps</span><span class=\"p\">(</span><span class=\"s2\">&quot;app_label&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">test_model_definition</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">TestModel</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n            <span class=\"k\">pass</span>\n\n        <span class=\"o\">...</span>\n</code></pre></div>\n<aside class=\"admonition-setting-app-label admonition\">\n<p class=\"admonition-title\">Socrú <code class=\"docutils literal notranslate\"><span class=\"pre\">`app_label</span></code></p>\n<p>Sanntar lipéad an aip ina bhfuil a rang tástála suite go huathoibríoch do mhúnlaí a shainmhínítear i modh tástála gan aon sainráite:attr: ~django.db.models.options.app_label.</p>\n<p>D'fhonn a chinntiú go bhfuil na samhlacha atá sainmhínithe laistigh de chomhthéacs de:func: ~django.test.utils.isolate_apps cásanna suiteáilte i gceart, ba cheart duit an tacar spriocdhírithe <code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code> a rith mar argóintí:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">tástálach/app_label/tests.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.test</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">SimpleTestCase</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.test.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">isolate_apps</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">TestModelDefinition</span><span class=\"p\">(</span><span class=\"n\">SimpleTestCase</span><span class=\"p\">):</span>\n    <span class=\"nd\">@isolate_apps</span><span class=\"p\">(</span><span class=\"s2\">&quot;app_label&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;other_app_label&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">test_model_definition</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># This model automatically receives app_label=&#39;app_label&#39;</span>\n        <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">TestModel</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n            <span class=\"k\">pass</span>\n\n        <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">OtherAppModel</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n            <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n                <span class=\"n\">app_label</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;other_app_label&quot;</span>\n\n        <span class=\"o\">...</span>\n</code></pre></figure>\n</aside>\n</section>\n</section>","rootId":"unit-tests","toc":[{"title":"Tástálacha aonaid a rith","anchor":"running-the-unit-tests","children":[{"title":"Tosaigh gasta","anchor":"quickstart","children":[]},{"title":"Tástálacha reatha ag baint úsáide as tocs","anchor":"running-tests-using-tox","children":[{"title":"Leaganacha Python eile agus cúltaca bunachar sonraí a thástáil","anchor":"testing-other-python-versions-and-database-backends","children":[]},{"title":"Na tástálacha JavaScript a rith","anchor":"running-the-javascript-tests","children":[]}]},{"title":"Tástálacha a reáchtáil ag baint úsáide as django-docker-box","anchor":"running-tests-using-django-docker-box","children":[]},{"title":"Ag baint úsáide as modúl eile ``socruithe ``","anchor":"using-another-settings-module","children":[]},{"title":"Níl ach cuid de na tástálacha á rith","anchor":"running-only-some-of-the-tests","children":[]},{"title":"Rith na tástálacha Seiléiniam","anchor":"running-the-selenium-tests","children":[{"title":"Screenshot tests","anchor":"screenshot-tests","children":[]}]},{"title":"Na tástálacha go léir á rith","anchor":"running-all-the-tests","children":[]},{"title":"Clúdach cód","anchor":"code-coverage","children":[]},{"title":"Code coverage on pull requests","anchor":"code-coverage-on-pull-requests","children":[]}]},{"title":"Aipeanna Contrib","anchor":"contrib-apps","children":[]},{"title":"Fabhtcheartú","anchor":"troubleshooting","children":[{"title":"Crochtann nó taispeánann an tsraith tástála teipeanna ar bhrainse príomh","anchor":"test-suite-hangs-or-shows-failures-on-main-branch","children":[]},{"title":"Go leor teipeanna tástála le UnicodeEncodeError","anchor":"many-test-failures-with-unicodeencodeerror","children":[]},{"title":"Tástálacha nach dteipeann ach i gcomhcheangal","anchor":"tests-that-only-fail-in-combination","children":[]},{"title":"Ag féachaint ar na ceisteanna SQL ag rith le linn tástála","anchor":"seeing-the-sql-queries-run-during-a-test","children":[]},{"title":"Aisrianú iomlán teip tástála a fheiceáil","anchor":"seeing-the-full-traceback-of-a-test-failure","children":[]}]},{"title":"Leideanna maidir le tástálacha scrí","anchor":"tips-for-writing-tests","children":[{"title":"Clárú samhail a leithliú","anchor":"isolating-model-registration","children":[]}]}],"breadcrumbs":[{"docname":"internals/index","title":"Inmheánacha Django","url":"/ga/6.1/internals/"},{"docname":"internals/contributing/index","title":"Ag cur le Django","url":"/ga/6.1/internals/contributing/"},{"docname":"internals/contributing/writing-code/index","title":"Cód rannpháirteach","url":"/ga/6.1/internals/contributing/writing-code/"}],"prev":{"docname":"internals/contributing/writing-code/submitting-patches","title":"Ranníocaí a chur isteach","url":"/ga/6.1/internals/contributing/writing-code/submitting-patches/"},"next":{"docname":"internals/contributing/writing-code/working-with-git","title":"Ag obair le Git agus GitHub","url":"/ga/6.1/internals/contributing/writing-code/working-with-git/"},"formats":{"html":"/ga/6.1/internals/contributing/writing-code/unit-tests/","markdown":"/ga/6.1/internals/contributing/writing-code/unit-tests.md","json":"/ga/6.1/internals/contributing/writing-code/unit-tests.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/internals/contributing/writing-code/unit-tests.txt","official":"https://docs.djangoproject.com/ga/6.1/internals/contributing/writing-code/unit-tests/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}