最后几个失败的构建在我的计算机上通过得很好,但我无法让它们通过 travis。问题来自测试(和其他类似操作)中的几行:https : //github.com/garth5689/pyd2l/blob/master/test/pyd2l_test.py#L15-L20
在我的测试中,由于我有复杂的数据要测试,我已经腌制了这些数据,以便轻松地再次打开它,而不必每次测试时都访问我多次抓取的网站。(随意讨论这种测试策略的优点,但这不是问题的主题。)
class PyD2LMethodsTest(unittest.TestCase):
def setUp(self):
with open('./soup_1899_pickle.pkl', 'rb') as soup_pickle:
self.soup = pickle.load(soup_pickle)
with open('./soup_1899_details_pickle.pkl', 'rb') as details_pickle:
self.test_details = pickle.load(details_pickle)
with open('./test_Match_1899_pickle.pkl', 'rb') as test_Match_pickle:
self.test_match = pickle.load(test_Match_pickle)
Run Code Online (Sandbox Code Playgroud)
这会导致我的 travis 构建中出现以下一系列错误:
======================================================================
ERROR: test_calculate_reward_rounded_ceil (pyd2l_test.MatchTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/travis/build/garth5689/pyd2l/test/pyd2l_test.py", line 70, in setUp
with open('./test_Match_1899_pickle.pkl', 'rb') as test_Match_pickle: self.test_= pickle.load(
FileNotFoundError: [Errno 2] No such file or directory: './test_Match_1899_pickle.pkl'
Run Code Online (Sandbox Code Playgroud)
这是目录结构
pyd2l (repo)
|-- pyd2l
| |-- (actual source files)
|
+-- test
|-- pyd2l_test.py
|-- soup_1899_details_pickle.pkl
|-- soup_1899_pickle.pkl
|-- soup_404_pickle.pkl
+-- test_Match_1899_pickle.pkl
Run Code Online (Sandbox Code Playgroud)
测试在我的本地机器上运行良好。(我./在测试期间将 加到文件名中,看看我是否可以让它自己工作。我认为环境变量中可能有一些我需要使用的东西,但我不确定。可能有也有可能 travis 不允许酸洗/解酸,但我找不到任何效果。任何帮助表示赞赏。
Travis 构建:https : //travis-ci.org/garth5689/pyd2l/builds
./是多余的;该文件的路径已经相对于您当前的工作目录。
问题是您希望它相对于您的测试目录,因此:
import os
# ...
with open(os.path.join(os.path.dirname(__file__), 'soup_1899_pickle.pkl'), 'rb') as soup_pickle:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1759 次 |
| 最近记录: |