Comments (2)
Hello JConan!
Thanks for your reply. After some study I came to a passing answer of the same type of yours. Pasting the full test here:
# Constants accessed from functions
% DATE_STR: dom 26 mar 2023 22:38:45
% LOG_DIR: .
% LOG_PATH: "$LOG_DIR/$DATE_STR test_env_builder.log"
#######################################
Mock date
if [ ! -e "$date_lock" ]; then
echo $DATE_STR
touch "$date_lock"
else
echo dom 26 mar 2023 22:38:46
fi
End
export "DATE_STR"
Context 'log'
Include $script_file
Context 'usage: caller'
It 'should redirect the stdout to the file setted by log'
usage() {
log
echo 'test message' &>> "$LOG_FILE"
}
When call usage
The file "$LOG_PATH" should be a file
The file "$LOG_PATH" should not be a empty file
The file "$LOG_PATH" should be readable
The output should equal ""
End
End
It 'should set the log file with the right format'
When call log
The variable "LOG_FILE" should equal "$LOG_PATH"
End
It 'should set the log file path one time only'
log_twice() {
log
log
}
When call log_twice
The variable "LOG_FILE" should equal "$LOG_PATH"
End
End
from shellspec.
I don't think evaluation line "When" can resolve redirection.
You can otherwise encapsuled this in a function and then call it.
LOG_FILE="$SHELLSPEC_TMPDIR/test"
remove_logs() {
rm "$LOG_FILE"
}
Context 'log'
AfterEach 'remove_logs'
File log_file="$LOG_FILE"
log_to_file(){
echo 'test message' >> "$LOG_FILE"
}
It 'should log a message to file'
When call echo 'toto' >> "$LOG_FILE"
The file log_file should be a file
The file log_file should not be a empty file
The file log_file should be readable
The length of output should equal 0
End
End
from shellspec.
Related Issues (20)
- Provide a junit 5 config parameter to enable turn off adding stdout and stderr into the junit xml files.
- Intercepting the script as shown in documentation example isn't preserving the variables for "When run source" HOT 2
- does shellspec support csh or tcsh? HOT 1
- "Not found specified shell" in OpenBSD HOT 3
- Acronyms are not defined before use
- STDIN in test is bound to the calling terminal STDIN when Data block not specified HOT 2
- allow comparing stdout/stderr to the contents in a file HOT 2
- shellspec --init not working with whitespaces in working path on WSL Ubuntu on Windows HOT 4
- yash version 2.54 does not work with shellspec HOT 1
- kcov show no coverage with --execdir
- kcov with /bin/bash or /bin/sh HOT 1
- Command Based Mock - command execution status HOT 2
- Parameters:dynamic from a shell script HOT 1
- No error in execution without coverage report generation, problem in using coverage report generation
- Can local variables of the function under test be modified by the test case simulation? HOT 3
- Nested `source` commands inside scripts under testing
- Unit tests for Inner Function without calling the outer function HOT 1
- fails when expected success HOT 1
- Typo in the README.md, see "Intercepting" sample HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shellspec.