__data.csv core

问题描述 投票:0回答:1

以下是我的目录结构

data
|__data.csv

core
|__module.py

unittests
|__core
   |__module_test.py

module.py 有 2 个函数,read_file()读取一个文件,add(a, b)返回 2 个给定数字的和。

module.py中,有2个函数,分别是read_file(),读取一个文件和add(a,b),返回2个给定数之和。

import pandas

def readfile(file_path, file_name):
    df = pandas.read_csv(r"" +file_path + file_name + ".csv")
    return df

def add(a, b):
    return a + b

orig_df = readfile("..\data\\", "data.csv")
# do other things

module_test.py, 有一个测试方法,用于add

模块_test.py。

import unittest
import core.module as module


class MyTestCase(unittest.TestCase):
    def test_add(self):
        x = module.add(1, 2)
        self.assertEqual(2, x)

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

但是,当我运行测试时,我在回溯中看到read_file()函数中的代码正在执行,但失败了,因为它找不到数据文件。

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Edu 2019.3.1\plugins\python-ce\helpers\pycharm\_jb_unittest_runner.py", line 35, in <module>
    main(argv=args, module=None, testRunner=unittestpy.TeamcityTestRunner, buffer=not JB_DISABLE_BUFFERING)
  File "C:\Users\bhats\Anaconda3\lib\unittest\main.py", line 100, in __init__
    self.parseArgs(argv)
  File "C:\Users\bhats\Anaconda3\lib\unittest\main.py", line 147, in parseArgs
    self.createTests()
  File "C:\Users\bhats\Anaconda3\lib\unittest\main.py", line 159, in createTests
    self.module)
  File "C:\Users\bhats\Anaconda3\lib\unittest\loader.py", line 220, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Users\bhats\Anaconda3\lib\unittest\loader.py", line 220, in <listcomp>
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Users\bhats\Anaconda3\lib\unittest\loader.py", line 154, in loadTestsFromName
    module = __import__(module_name)
  File "C:\Users\bhats\PycharmProjects\alpha-hunts\unittests\core\module_test.py", line 2, in <module>
    import core.module as module
  File "C:\Users\bhats\PycharmProjects\alpha-hunts\core\module.py", line 10, in <module>
    orig_df = readfile("..\data\\", "data.csv")
  File "C:\Users\bhats\PycharmProjects\alpha-hunts\core\module.py", line 4, in readfile
    df = pandas.read_csv(r"" +file_path + file_name + ".csv")
  File "C:\Users\bhats\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 685, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "C:\Users\bhats\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 457, in _read
    parser = TextFileReader(fp_or_buf, **kwds)
  File "C:\Users\bhats\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 895, in __init__
    self._make_engine(self.engine)
  File "C:\Users\bhats\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1135, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "C:\Users\bhats\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1917, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas\_libs\parsers.pyx", line 382, in pandas._libs.parsers.TextReader.__cinit__
  File "pandas\_libs\parsers.pyx", line 689, in pandas._libs.parsers.TextReader._setup_parser_source
FileNotFoundError: [Errno 2] File b'..\\data\\data.csv.csv' does not exist: b'..\\data\\data.csv.csv'

为什么会出现这种情况?如果我单独导入函数,就不会发生这种情况,但是,我注意到了。谁能解释一下为什么会发生这种情况?

python python-unittest
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.