相关疑难解决方法(0)

单元测试bash脚本

我们有一个除了Java代码之外还运行一些bash脚本的系统.由于我们正在尝试测试可能会破坏的所有内容,并且这些bash脚本可能会中断,我们希望对它们进行测试.

问题是很难测试bash脚本.

有没有办法或最佳实践来测试bash脚本?或者我们应该退出使用bash脚本并寻找可测试的替代解决方案?

testing bash tdd automated-tests extreme-programming

101
推荐指数
8
解决办法
6万
查看次数

如何从Python包中读取(静态)文件?

你能告诉我如何读取Python包中的文件?

我的情况

我加载的包有许多我想从程序中加载的模板(用作字符串的文本文件).但是如何指定此类文件的路径?

想象一下,我想从以下位置读取文件:

package\templates\temp_file
Run Code Online (Sandbox Code Playgroud)

某种路径操纵?包基路径跟踪?

python file package

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

如何解决python中的相对路径?

我有这样的目录结构

projectfolder/fold1/fold2/fold3/script.py
Run Code Online (Sandbox Code Playgroud)

现在我给script.py一个路径作为文件的命令行参数

fold1/fold_temp/myfile.txt
Run Code Online (Sandbox Code Playgroud)

所以基本上我希望能够以这种方式提供路径

../../fold_temp/myfile.txt 

>>python somepath/pythonfile.py -input ../../fold_temp/myfile.txt
Run Code Online (Sandbox Code Playgroud)

这里的问题是我可能会获得完整路径或相对路径,因此我应该能够决定并基于此我应该能够创建绝对路径.

我已经掌握了与路径相关的功能.

问题1

问题2

参考问题给出了部分答案,但我不知道如何使用其中提供的功能构建完整路径.

python path

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

如何在不同模块导入时访问Python 2.7中的相对路径

目标: 当使用从各种python模块调用的公共实用程序函数时,访问/写入相同的临时文件.

背景: 我使用python Unittest模块来运行通过pySerial与仪器连接的自定义测试集.因为我使用的是unittest模块,所以我无法将所需的变量(例如要使用的串口)传递到unittest的测试用例中.为了解决这个问题,我想创建一个存储和返回pickle数据的模块.我遇到的问题是,当我从test_case_1()调用函数get_foo()时,它会尝试从基于test_case_1()的相对路径加载pickle数据,而不是包含get_foo()的实际模块.

值得注意的是,我已经考虑过使用全局变量,但是我希望从运行中保留一些数据.这意味着将关闭所有python模块,并且我想重新加载上一次执行时存储的数据.

我在SO问题:Python - 在使用代码库时如何引用资源的相对路径,我以为我在第一个答案中找到了解决方案.令我沮丧的是,这在Python 2.7(Debian)中对我不起作用

从不同模块调用时,是否有可靠的方法将路径返回到特定文件?

python unit-testing path

5
推荐指数
1
解决办法
1953
查看次数

Docker Python脚本找不到文件

我已经成功构建了一个Docker容器并将我的应用程序文件复制到Dockerfile中的容器中。但是,我试图执行一个引用输入文件的Python脚本(该文件在Docker构建期间复制到了容器中)。我似乎无法弄清楚为什么我的脚本告诉我它无法找到输入文件。我在下面包括用于构建容器的Dockerfile,以及正在寻找其找不到的输入文件的Python脚本的相关部分。

Dockerfile:

FROM alpine:latest

RUN mkdir myapplication

COPY . /myapplication

RUN apk add --update \
    python \
    py2-pip && \
    adduser -D aws

WORKDIR /home/aws

RUN mkdir aws && \
    pip install --upgrade pip && \
    pip install awscli && \
    pip install -q --upgrade pip && \
    pip install -q --upgrade setuptools && \
    pip install -q -r /myapplication/requirements.txt

CMD ["python", "/myapplication/script.py", "/myapplication/inputfile.txt"]
Run Code Online (Sandbox Code Playgroud)

Python脚本的相关部分:

if len(sys.argv) >= 2:
    sys.exit('ERROR: Received 2 or more arguments. Expected 1: Input file name') …
Run Code Online (Sandbox Code Playgroud)

python docker dockerfile

5
推荐指数
1
解决办法
7139
查看次数

Pyinstaller EXE 的 __file__ 是指一个 .py 文件

情况:我的 Python 脚本有一行代码将自身复制到另一个目录

shutil.copyfile(os.path.abspath(__file__), newPath)
Run Code Online (Sandbox Code Playgroud)

问题:脚本然后被编译成一个 EXE 并运行。给出的错误如下:

FileNotFoundError: No such file or Directory: "C:\Path\To\EXE\script.py"
Run Code Online (Sandbox Code Playgroud)

如您所见,EXE 正在寻找.py自己的版本(即未编译版本)

问题:是否还有另一个 Python 命令仍然可以让可执行文件找到自己而不是自己的.py版本?

附加信息:我将尝试仅替换.py.exe并查看它是否有效——如果我更改可执行文件的名称,程序就会失败。

C:\ > script.exe
#Works as expected

C:\ > ren script.exe program.exe
C:\ > program.exe
FileNotFoundError: No such file or directory: "C:\script.py"
Run Code Online (Sandbox Code Playgroud)

python executable pyinstaller python-3.x

4
推荐指数
1
解决办法
1803
查看次数