首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSCode中未发现的Python单元测试

VSCode中未发现的Python单元测试
EN

Stack Overflow用户
提问于 2017-12-24 12:18:23
回答 9查看 21.1K关注 0票数 12

我编写了一个名为scraping_test.py的python测试文件,并使用unittest编写了一个测试类,名为TestScrapingUtils

代码语言:javascript
复制
"""Tests for the scraping app"""
import unittest

from bs4 import BeautifulSoup as bs4

from mosque_scraper.management.commands import scraping_utils
from mosque_scraper.selectors import MOSQUE_INFO_ROWS_SELECTOR

class TestScrapingUtils(unittest.TestCase):
    """Test scraping_utils.py """
    def setup(self):
        """Setup McSetupface."""
        pass
    def test_get_keys_from_row(self):
        """ Test that we extract the correct keys from the supplied rows."""
        test_page_name = "test_page.html"
        with open(test_page_name) as test_page_file:
            test_mosque = bs4(test_page_file, 'html.parser')
            rows = test_mosque.select(MOSQUE_INFO_ROWS_SELECTOR)
            field_dict = scraping_utils.get_fields_from_rows(rows)
            self.assertDictEqual(field_dict, {})

我的单元测试设置是:

代码语言:javascript
复制
{
    "python.unitTest.unittestEnabled": true,
    "python.unitTest.unittestArgs": [
        "-v",
        "-s",
        ".",
        "-p",
        "*test.py"
    ]
}

它看起来应该可以工作,但是当我单击在VSCode中运行测试时,它说没有发现任何测试:

未发现测试,请检查测试的配置设置。

我该怎么做呢?

EN

回答 9

Stack Overflow用户

发布于 2018-04-11 02:48:34

您必须使用快捷键shift+ctrl p运行它一次,并输入“测试”。

它将不会出现在编辑器中,直到它至少成功执行一次或使用发现单元测试方法。

然而,有一件事让我多次发现,Python文件必须是一个有效的Python文件。VS Code中的intellisense并不复杂(与Javascript或Typescript相比),它不会突出显示任何语法错误。您可以通过强制它运行所有单元测试和观察窗口来验证这一点。

票数 15
EN

Stack Overflow用户

发布于 2020-08-17 09:35:16

让我感到意外的是,必须在每个子目录中创建__init__.py文件,从使用-s选项指定的根文件夹(在示例中是当前目录".")到测试模块所在的子目录。只有到那时,我才能成功地发现测试。

在问题示例中,project_dir/project_dir/scraping_app/都应该包含__init__.py。这是假设settings.json位于project_dir/.vscode中,并且测试从project_dir/目录运行。

编辑:,或者使用"-s", "./scraping_app/"作为根测试目录,这样您就不必将__init__.py放到project_dir/中。

票数 3
EN

Stack Overflow用户

发布于 2020-08-04 06:38:08

而不是文件名'scraping_test.py‘,而是'test_scraping.py’字符串应该从'test‘前缀开始

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47960521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档