小编Mar*_*rio的帖子

在单独的文件中运行 Rust 测试

我对 Rust 绝对是菜鸟,而且 Rust 书似乎没有涵盖我的单元测试的具体用例。

我正在为我的大学学位实施计算机语言基准游戏。为了保持一致,我决定每种语言和算法实现都应遵守以下目录结构:

root
|
|__ language_1
|   |
|   |__ algorithm_1
|   |   |
|   |   |__ algorithm_1          <-- The algorithm logic.
|   |   |
|   |   |__ algorithm_1_tests    <-- Tests.
|   |   |
|   |   |__ algorithm_1_run      <-- A `main` function to execute the algorithm logic.
|   |
|   |__ algorithm_2
|
|__ language_2
...
Run Code Online (Sandbox Code Playgroud)

我需要这种一致性,因为我稍后将编写一个 bash 脚本来遍历此目录树结构,并能够轻松编译(如果需要)并运行必要的文件。

我目前正在使用 Rust 编程语言学习和编写算法。我将算法创建为库文件,并有一个单独的文件来调用库文件并执行其中的函数。这很好用。

我的问题在于测试。我希望有一个包含所有测试的单独文件,导入原始算法逻辑文件,并调用(和断言)函数。

为了使这一点更清楚,我将提供一个我正在运行的模拟示例:

root
|
|__ rust
|   |
|   |__ algorithm
| …
Run Code Online (Sandbox Code Playgroud)

testing unit-testing rust

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

Docker 在 docker run 命令上给出“没有这样的文件或目录:未知”

我能够通过docker build -t foo/bar ..
这是它的Dockerfile

FROM ubuntu:20.04

COPY benchmark.sh /home/benchmarking-programming-languages/benchmark.sh
CMD [ "/home/benchmarking-programming-languages/benchmark.sh -v" ]
Run Code Online (Sandbox Code Playgroud)

这是文件benchmark.sh

FROM ubuntu:20.04

COPY benchmark.sh /home/benchmarking-programming-languages/benchmark.sh
CMD [ "/home/benchmarking-programming-languages/benchmark.sh -v" ]
Run Code Online (Sandbox Code Playgroud)

但是,通过运行它docker run -it foo/bar会出现错误:

调用远程方法“docker-run-container”时出错:错误:(HTTP 代码 400)意外 - 无法创建垫片:OCI 运行时创建失败:container_linux.go:380:启动容器进程导致:exec:“/home/benchmarking-编程语言/benchmark.sh -v": stat /home/benchmarking-programming-languages/benchmark.sh -v: 没有这样的文件或目录: 未知

尽管如此,当通过 shell 将图像作为容器运行时docker run -it foo/bar sh,我不仅可以看到该文件,而且可以毫无错误地执行它!
有人可以提出错误发生的原因以及如何修复它吗?

bash virtualization docker dockerfile docker-compose

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

如何在承诺中添加超时?

我读过许多在承诺中添加超时的不同方法,但大多数(如果不是全部)似乎都利用了该setTimeout()方法。根据定义:

The setTimeout() method calls a function or evaluates an expression after a specified number of milliseconds.
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一种表达方式:

"If the function executed inside the promise (that will either resolve or
reject the promise), does not complete within a specified x number of
milliseconds, automatically reject or raise an exception."
Run Code Online (Sandbox Code Playgroud)

如果这与上面定义的相同(使用该setTimeout()方法),我们将不胜感激!

javascript timeout node.js promise

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