在 Django 中测试期间如何 运行 Lighthouse CLI?
How do I run Lighthouse CLI during tests in Django?
我想 运行 在 Django 中测试期间使用 Lighthouse CLI。默认情况下,Django 测试不会 运行 可以响应 HTTP 请求的服务器,因此这是不可能的。
如何在 Django 测试期间 运行 Lighthouse CLI?
首先,安装 Lighthouse CLI:
$ npm install --save-dev @lhci/cli
然后,修改package.json
修改scripts
部分,像这样:
{
"scripts": {
"lhci": "lhci"
}
}
您可以 运行 对使用 LiveServerTestCase
or StaticLiveStaticTestCase
响应 HTTP 请求的服务器进行测试,如下所示:
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
import subprocess
class Example(StaticLiveServerTestCase):
def test_example(self):
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'collect', '--url', self.live_server_url, '--no-lighthouserc',
])
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'assert',
])
# Optional:
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'open',
])
现在运行这个命令:
$ python manage.py test
请注意,您可能仍想在生产服务器上测试网站的性能,因为它可能与网站在本地开发人员计算机或测试服务器上的性能大不相同。
我想 运行 在 Django 中测试期间使用 Lighthouse CLI。默认情况下,Django 测试不会 运行 可以响应 HTTP 请求的服务器,因此这是不可能的。
如何在 Django 测试期间 运行 Lighthouse CLI?
首先,安装 Lighthouse CLI:
$ npm install --save-dev @lhci/cli
然后,修改package.json
修改scripts
部分,像这样:
{
"scripts": {
"lhci": "lhci"
}
}
您可以 运行 对使用 LiveServerTestCase
or StaticLiveStaticTestCase
响应 HTTP 请求的服务器进行测试,如下所示:
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
import subprocess
class Example(StaticLiveServerTestCase):
def test_example(self):
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'collect', '--url', self.live_server_url, '--no-lighthouserc',
])
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'assert',
])
# Optional:
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'open',
])
现在运行这个命令:
$ python manage.py test
请注意,您可能仍想在生产服务器上测试网站的性能,因为它可能与网站在本地开发人员计算机或测试服务器上的性能大不相同。