小编Bha*_* Nc的帖子

Python 单元测试模块抛出“ModuleNotFoundError:没有名为‘tests.test_file’的模块”

我正在尝试为我一直在从事的项目执行测试用例。我以前曾成功执行单元测试,但现在出错了。我确信没有任何库更新或路径更改。我试图查看源代码并弄清楚为什么它会出错但还没有运气。对此的任何帮助将不胜感激。

Python 版本 - 3.7.1

下面的示例代码

import unittest

class MyTestCase(unittest.TestCase):

def test_dummy(self):
    self.assertEqual(2+2,4)
Run Code Online (Sandbox Code Playgroud)

我在cmd中使用了以下命令来执行测试。

C:\Users\Yadada\Desktop\repo\mwe\mwe>python -m unittest tests\test_file.py

我的文件夹结构是

 MWE -|
      |_tests - |
                |_test_file.py
Run Code Online (Sandbox Code Playgroud)

预期的输出是测试成功执行,因为它很简单。但我最终得到以下错误

strclass
ERROR: test_file (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_file
Traceback (most recent call last):
  File "C:\Users\yadada\AppData\Local\Continuum\anaconda3\lib\unittest\loader.py", line 156, in loadTestsFromName
    module = __import__(module_name)
ModuleNotFoundError: No module named 'tests.test_file'


----------------------------------------------------------------------
Ran 1 test in 0.001s
Run Code Online (Sandbox Code Playgroud)

python unit-testing python-3.x anaconda

19
推荐指数
3
解决办法
3万
查看次数

两个列表的笛卡尔积可以返回除涉及两个相同元素的组合之外的所有组合吗?

例如

nested = [a,b,c]

上面列表的笛卡尔乘积本身将生成以下对

[(a,a),(a,b),(a,c),(b,a),(b,c),(b,b),(c,a),(c,b),(c,c)]

我想找到一种方法来产生以下内容

[(a,b),(a,c),(b,a),(b,c),(c,a),(c,b)]

我尝试了以下

[(x,y) for x in nested for y in nested if x != y]

上面的代码在以下测试用例中失败

nested_testcase1 = [[1,2],[2,3],[1,2]]
Run Code Online (Sandbox Code Playgroud)

现在,上面的代码行将给出以下结果

[([1,2],[2,3]),([2,3],[1,2]),([1,2],[2,3]),([2,3],[1,2])]

但是我下面是什么

[([1,2],[2,3]),([2,3],[1,2]),([1,2],[2,3]),([2,3],[1,2]),([1,2],[1,2]),([1,2],[1,2])]

最后两个组合是通过将第一个和最后一个元素配对来实现的。

有人有什么想法吗?

python cartesian-product python-3.x

0
推荐指数
1
解决办法
62
查看次数