Hello, I’m trying to figure out how to fail a test when something happens:
So a have a string/text that I’m searching through with a for loop, using value from an array:
for ( let i = 0; i < fullNames.length; i ++) {
var n = listedNames.search(fullNames[i])
if ( n === -1) {
pm.test("This name is missing: " + fullNames[i] , function () {
n != -1; the n != -1 does not seem to return a failed test…
});
}
}
However, I want to make it fail when n is equal to -1 - when what was searched has not been found. This for loop usually runs 30-40 times, can I make it that it logs all the failed searches as failed tests? Or simply just fail it once when the n is -1, I can probably log the rest in the console for further investigation if it does fail.
Could you share the full response body and the full code please, not just the tests, the tiny snippets of information are just going to lead to more questions
What are you looking to test for? A missing name, an empty string, some other condition?
Is there a reason you chose the .search() method over something else?
I chose search because I don’t know a better way right now, however that isn’t my issue.
I’m just trying to figure out, if it is possible to get a test to fail if it does not meet the expected value for N, the pm.test will only be logged when n is -1, so I know it has already failed, I’m just looking for a way to manually make it fail:
pm.test("RandomText" , function() {
if I understand correctly, if something isnt right here, it should fail.
}
I’m not sure what -1 represents in your context, as I can’t see the code you’re running or the details about what is being looped through to get that value as the output. So I wouldn’t be able to suggest a valid solution that covers your use case, i would just be guessing.
There is a .fail(<optional message string>) chai method that you could use to fail the test if the condition is met.
Basic example:
pm.test("Value equals -1", function () {
let num = -1
if(num === -1) {
pm.expect.fail("Value equals -1")
}
});
It’s way to fail a test but again, I don’t 100% understand what it is you’re trying to do so this is just a suggestion
Hey, so N stands for the index of the array, so when it searches the string, it returns N with the index value of what was searched. This does not matter, as I’m only looking for missing names in this case.
N is -1 when the value from the array (fullnames[i]) has not been found, so I’m trying to make it that each time n returns as -1, to have a failed test, right now if I have missing names, I receive a passed test that prints the name, however I want that test to be a failed one.
I tried using .fail, however I may have not used it correctly as it breaks my collection when it fails the first time while I’m trying to have it to log each fail as failed test in the runner as many times as required.
Thank you though! I will try to see if I can get it to work with .fail
Sharing all your code would probably help get you to a solution quicker.
Trying to explain what it is, what’s it’s doing or even that it’s failing somewhere, is never going to be as good as actually seeing it and walking through it.
If you wanted to do that in a private message, feel free to ping me.